java-Java抽象类中的非抽象方法的方法体为空,子类也没有头给予实现,但却被调用了是什么意思

问题描述

Java抽象类中的非抽象方法的方法体为空,子类也没有头给予实现,但却被调用了是什么意思

读源码的时候关键地方卡住了,在一个方法的结尾把数据作为参数调用了一个抽象类的方法,这个方法不是抽象方法,方法体也是空的,这个抽象类的子类只有一个,而且也没有实现这个方法,那这些数据到底了什么地方呢?

解决方案

实现方法在子类中,多态的概念,父类有这个方法(不是abstract的),所以要写一个空方法,具体实现由子类处理

解决方案二:

子类继承了父类, 不管是否重写父类的方法,都可以调用父类的方法吧

时间: 2024-11-03 09:36:25

java-Java抽象类中的非抽象方法的方法体为空,子类也没有头给予实现,但却被调用了是什么意思的相关文章

java return语句-java当中的方法的返回值跟方法体里面的内容没多大关系

问题描述 java当中的方法的返回值跟方法体里面的内容没多大关系 java当中的方法的返回值跟方法体里面的内容没多大关系吧,只跟开头定义方法返回值类型有关 那么有得return语句写得很负责呢,比如是一个表达式等等,如何写return语句呢 解决方案 return 关键字只会为了给方法返回一个值,只要你最终返回的值是和方法声明定义的返回类型相同就行.return 跟方法名 代表 return 跟的方法名执行后的返回值.比如 abc方法 返回值是String 类型.你写return abc();

对象-Android项目中该如何理解这个方法体

问题描述 Android项目中该如何理解这个方法体 // 销毁arg1位置的界面 @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(views.get(arg1)); } 解决方案 viewpage有缓存机制,默认是预加载三页,前提是前一页后一页有东西.既然有预加载那么翻页的时候后,就会重新预加载下一次要加载的页面. 比如你现在是第二页 他已经加载

JAVA Graphics类中的DrawLine抽象方法

问题描述 importjava.awt.*;importjavax.swing.*;publicclassMyPanelextendsJPanel{publicvoidpaintComponent(Graphicsg){g.drawLine(15,15,150,150);}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubJFrameframe=newJFrame();MyPanelpanel=newMyPanel(

java类的问题-java对象创建的问题,类中的非构造函数

问题描述 java对象创建的问题,类中的非构造函数 当new一个类的对像的时候,这个对象会自动调用他的构造函数,那么是否会自动 调用非构造函数? 解决方案 不会,假如你在类里面没有写构造函数,那么它会调用默认提供的构造函数,如果你提供了带参的构造函数,那么系统就不会再提供默认的构造函数(无参) 解决方案二: 其实java中并没有非构造函数之说,因为构造函数如果你没有创建就会默认调用系统提供的 java_Class_name xxx= new java_Class_name();类似这样的默认构造

java面向对象—抽象类、接口与多继承

有时候,我们可能想要构造一个很抽象的父类对象,它可能仅仅代表一个分类或抽象概念,它的实例没有任何意义,因此不希望它能被实例化.例如:有一个父类" 水果(Fruit)",它有几个子类"苹果(Apple)"."橘子(Orange)"."香蕉(Banana)"等.水果在这里仅仅只是作为一个分类,显然水果的实例没有什么意义(就好像一个人如果告诉你他买了一些水果但是却不告诉你是苹果还是橘子,你很难想象他到底买的是什么.).而水果类又要能

举例说明Java设计模式编程中ISP接口隔离原则的使用_java

Interface Segregation Principle,ISP接口隔离原则主张使用多个专门的接口比使用单一的总接口要好. 一个类对另外一个类的依赖性应当是建立在最小的接口上的. 一个接口代表一个角色,不应当将不同的角色都交给一个接口.没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染. "不应该强迫客户依赖于它们不用的方法.接口属于客户,不属于它所在的类层次结构."这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法

对象-java源码中一个抽象类初始化方法中包含一个super(),该怎么理解

问题描述 java源码中一个抽象类初始化方法中包含一个super(),该怎么理解 package org.apache.http.params; import java.util.Set; /** * Abstract base class for parameter collections. * Type specific setters and getters are mapped to the abstract, * generic getters and setters. * * @si

java语法-java中如何在其他方法的方法体里面初始化一个非静态public方法

问题描述 java中如何在其他方法的方法体里面初始化一个非静态public方法 java中如何在其他方法的方法体里面初始化一个非静态public方法 如何判断一个方法是不是静态方法, 解决方案 方法里面弄方法,,那是匿名类用的,,除此之外一般没这么用

java抽象类中私有属性初始化之后与预期结果不一致

问题描述 java抽象类中私有属性初始化之后与预期结果不一致 背景是这样的,项目使用的是Spring MVC类与类之间是通过@Autowired注解进行 注入的,我有一个Email的抽象类 public abstract class Mail { protected boolean isEmailContentValid = true; } 然后有多个子类机型了这个Email抽象类,比如AEmail extends Mail public class MailFactory { @Autowir