在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();
 }
}
相關文章
相關標籤/搜索