1. 程式人生 > >java的多繼承的實現方式——通過內部類實現多繼承

java的多繼承的實現方式——通過內部類實現多繼承

  • 說在前面
    大家都知道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();
    }
}

還有就是通過實現多個介面來實現多繼承了,這個是最常見的。也是更加簡潔方便的方法。