- 说在前面
大家都知道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();
}
}
还有就是通过实现多个接口来实现多继承了,这个是最常见的。也是更加简洁方便的方法。