接口之间的多继承:
1. 类与类之间是单继承的,直接父类只有一个。
2. 类与接口之间是多实现的,一个类可以实现多个接口。
3. 接口与接口之间是多继承的
注意事项:
1. 多个父接口当中的抽象方法如果重复,没关系。
2. 多个父接口当中的默认方法如果重复,那么子接口必须进行默认方法的覆盖重写。【而且带着default关键字】
实例如下:
创建一个接口类AA:
创建一个接口类CC:
创建一个实现类MyInterfaceCCImpl使用接口CC:
来源于我自己的成员方法
methodAA 来源于接口AA
methodBB 来源于接口BB
methodCommon 同时来源于接口AA和BB
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中的默认方法"); } }
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