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

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


在父类中调用子类的方法能够用接口实现,由于接口是实现了多继承的,一个类中能够实现多个接口而只能继承一个父类。因此能够让父类和子类共同实现一个接口
而子类和父类均可实现这个接口中方法。在子类中的方法天然能够被父类调用到。例如:
spa

//接口
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();
 }
}
相关文章
相关标签/搜索