Java>接口>>接口之间的多继承

本文探讨了Java中接口的多继承特性,指出接口与接口之间可以多重继承,并详细阐述了注意事项,包括重复抽象方法的处理和重复默认方法需要在子接口中重写。通过创建AA、BB两个父接口和CC子接口以及实现类MyInterfaceCCImpl的示例,展示了接口继承的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口之间的多继承:

1. 类与类之间是单继承的,直接父类只有一个。

2. 类与接口之间是多实现的,一个类可以实现多个接口。

3. 接口与接口之间是多继承的

注意事项:

1. 多个父接口当中的抽象方法如果重复,没关系。

2. 多个父接口当中的默认方法如果重复,那么子接口必须进行默认方法的覆盖重写。【而且带着default关键字】

实例如下:

创建一个接口类AA:

package JieKou;

// 接口类AA

public interface MyInterfaceAA {
    public abstract void methodAA();

    public abstract void methodCommon();

    public default void methodDefault(){
        System.out.println("AA中的默认方法");
    }
}

创建一个接口类BB:

package JieKou;

//接口类BB

public interface MyInterfaceBB {
    public abstract void methodBB();

    public abstract void methodCommon();

    public default void methodDefault(){
        System.out.println("BB中的默认方法");
    }
}

创建一个子接口类CC:

package JieKou;

/*
接口类CC

这个子接口当中有几个方法?答:四个
methodAA 来源于接口AA
methodBB 来源于接口BB
methodCommon 同时来源于接口AA和BB
method 来源于我自己
 */

public interface MyInterfaceCC extends MyInterfaceAA,MyInterfaceBB{

    public abstract void method();

    @Override
    default void methodDefault() {
        System.out.println("默认方法如果重复,那么子接口必须进行默认方法的覆盖重写");
    }
}

创建一个实现类MyInterfaceCCImpl使用接口CC:

package JieKou;

//实现类

public class MyInterfaceCCImpl implements MyInterfaceCC {
    @Override
    public void method() {
        System.out.println("来源于我自己的成员方法");
    }

    @Override
    public void methodAA() {
        System.out.println("methodAA 来源于接口AA");
    }

    @Override
    public void methodBB() {
        System.out.println("methodBB 来源于接口BB");
    }

    @Override
    public void methodCommon() {
        System.out.println("methodCommon 同时来源于接口AA和BB");
    }
}

创建一个Demo01Relations类使用实现类MyInterfaceCCImpl:

package JieKou;

public class Demo01Relations {
    public static void main(String[] args) {
        MyInterfaceCCImpl impl = new MyInterfaceCCImpl();

        impl.methodDefault(); // 默认方法如果重复,那么子接口必须进行默认方法的覆盖重写

        impl.method(); // 来源于我自己的成员方法

        impl.methodAA(); // methodAA 来源于接口AA

        impl.methodBB(); // methodBB 来源于接口BB

        impl.methodCommon(); // methodCommon 同时来源于接口AA和BB
    }

}

以上代码运行结果:

默认方法如果重复,那么子接口必须进行默认方法的覆盖重写
来源于我自己的成员方法
methodAA 来源于接口AA
methodBB 来源于接口BB
methodCommon 同时来源于接口AA和BB

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值