Java中为什么可以多实现(接上文https://blog.csdn.net/mar1111s/article/details/142265688?spm=1001.2014.3001.5501)

接口

        书接上文,虽然 Java 不支持类的多重继承,但它通过接口来弥补这一限制。Java 支持多接口继承,即一个类可以实现多个接口,从而获得多态性。接口是一种契约,规定了类必须实现的方法,但不包含具体实现。

示例代码

interface A {
    void methodA();
}

interface B {
    void methodB();
}

class C implements A, B {
    public void methodA() {
        System.out.println("我是接口 A");
    }
    
    public void methodB() {
        System.out.println("我是接口 B");
    }
}

        在上面的例子中,类 C 实现了两个接口 AB,从而获得了两者的功能。这种方式不仅避免了多重继承中的冲突,还保持了代码的灵活性和扩展性。

默认方法

        从 Java 8 开始,接口引入了默认方法(default methods),这进一步增强了接口的灵活性。接口可以提供方法的默认实现,从而类似于某种程度的“多重继承”。

但是这里是不是就会有人问:诶,那不就又出现了多继承的菱形继承问题吗?

所以在Java中,强制规定,如果有多个接口内有相同的默认方法,子类必须要重写这个方法

示例

interface A {
    default void methodA() {
        System.out.println("我是接口 A");
    }
}

interface B {
    default void methodB() {
        System.out.println("我是接口 B");
    }
}

class C implements A, B {
    // 重写接口的默认方法
}

        通过接口中的默认方法,Java 提供了类似于多重继承的一种机制,允许类从多个接口中继承默认行为,并且如果存在冲突,子类可以通过重写来明确解决。

总结

        Java 不支持多重继承的主要原因在于避免了多重继承带来的二义性问题复杂性。通过使用接口和默认方法,Java 提供了一种灵活的方式来实现多态和代码复用,同时保持了代码的清晰性和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mar1f

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值