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

还有就是通过实现多个接口来实现多继承了,这个是最常见的。也是更加简洁方便的方法。

猜你喜欢

转载自blog.csdn.net/qq_39837953/article/details/84839098