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(); } }