java的多繼承的實現方式——通過內部類實現多繼承
阿新 • • 發佈:2018-12-07
- 說在前面
大家都知道java是不直接支援多繼承的,為什麼不支援多繼承呢?比較經典的一個問題就是diamond problem,比如b,c都繼承了a,而且b,c覆蓋了a的同一方法,此時d如果同時繼承了b,c,但是沒有覆蓋這一方法,那麼,請問此時在d裡呼叫該方法時,是b的,還是c的,還是a的? - 通過內部類的方式來實現多繼承
public class father {
public String fasu(){
return "I just want to kill you";
}
}
public class Mather { public String gender(){ return "I just want to love you"; } }
public class Son { class Myfather extends father { public String fasu() { return "I just want to love you too"; } } class Mymather extends Mather{ public String gender(){ return "I just want to love you"; } } public void get_fasu(){ System.out.println(new Myfather().fasu()); } public void get_gender(){ System.out.println(new Mymather().gender()); } public static void main(String[] args) { Son son = new Son(); son.get_fasu(); son.get_gender(); } }
還有就是通過實現多個介面來實現多繼承了,這個是最常見的。也是更加簡潔方便的方法。