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