java接口菱形继承

其实菱形继承的副作用只是因为公共基类的成员变量
Java的接口可以做出类似菱形继承的结构,但因为公共基类(接口?)中没有成员变量,所以没有二义性问题啦

当然也可以使用内部类(嵌套类)来实现类似多继承,不必担心会发生钻石危机,因为用内部类实现多继承过程中由设计者重新进行函数命名,从而避免了钻石危机。下面用代码来进行说明:

      要继承的类 Father。
    
public class Father {
    public void output() {
        System.out.println("father");
    }
}


       要继承的类 Mother。
    
public class Mother {
    public void output() {
        System.out.println("mother");
    }
}



   类 Son 同时继承了 Father 和 Mother 的 output() 方法的实现。
    
public class Son {
    class Father_son extends Father {
 
    }
 
    class Mother_son extends Mother {
 
    }
 
    public void father() {
        (new Father_son()).output();
    }
 
    public void mother() {
        (new Mother_son()).output();
    }
}

       测试类 MainTest。
    
public class MainTest {
    public static void main(String[] args) {
        Son test = new Son();
        test.father();
        test.mother();
    }
}



       测试结果如下:
    father
    mother
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值