在java中父类调用子类中的方法

社会主义新天地 提交于 2020-03-01 04:15:08

main方法中是可以的,父类是不能调用子类 的方法的。从面向对象上来说吧。
父类先于子类存在,子类从父类中生出来,所以子类知道父类,可以调用父类方法。但父类不知道子类,子类可以任意的出生,只要你愿意,所以父类无法调用子类,他不知他会有这样的子类,也不知有多少个子类,但子类的父类是唯一的。
简单点就是在JAVA中父类是不能调用子类的方法的。
实际上调用的是你new的是哪个,就是那个,也就是子类的方法
例如
class B extends A
A a = new B();
b.method()--->实际内存里面运行的是B的对象,所以调用的是子类B的方法


在父类中调用子类的方法可以用接口实现,因为接口是实现了多继承的,一个类中可以实现多个接口而只能继承一个父类。所以可以让父类和子类共同实现一个接口
而子类和父类都可实现这个接口中方法。在子类中的方法自然可以被父类调用到。例如:

//接口
public interface ab{
 public void initData();
 public void Data();
}
//子类
public class b  extends a implements ab{
 public void initData(){
  .......initData...
 }
 public void Data(){ 
  .........Data....
 }
}
//父类
public class a implements ab{
 public void initData(){
  b b1=new b();
      b1.initData();
 }
 public void Data(){ 
  b b1=new b();
      b1.Data();
 }
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!