Java中的菱形继承

1、什么叫菱形继承

菱形继承用通俗的话来说就是A继承B和C,B和C又继承于D。
直接看图片会清晰很多
在这里插入图片描述
但是由于java里是不允许抽象类多继承的,所以用接口代替

public interface D{
    void D();
}
public interface C{
    void C();
}
public interface B{
    void B();
}
public interface A implements B,C{
    @Override
    public void B() {
        System.out.println("B");
    }

    @Override
    public void C() {
        System.out.println("C");
    }

    @Override
    public void D() {
        System.out.println("D");
    }
    public static void main(String[] args) {
        B t1 = new A();
        C t2 = new A();
        t1.B();
        t1.D();
        t2.C();
        t2.D();
	}
}

发现java中并不会像c++一样会报错。然后我在 StackOverFlow 中查到,Java 中不存在菱形继承导致的问题,因为具有相同方法签名的两个方法会被合并成一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值