实现多接口和接口的多继承---Java

/*使用接口的时候,需要注意:
* 1.接口是没有静态代码块或者构造方法的
* 2.一个类的直接父类只有一个,但是一个类可以同时实现多个接口;
* 格式:
* public class MyInterfaceA implements MyInterfaceA, MyInterfaceB{
* //覆盖重写所有抽象方法
* }
*
* 3. 如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可
*
* 4.如果实现类没有覆盖重写所有接口的所有抽象方法,那么实现类就必须是一个抽象类
*
* 5. 如果实现类实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法实现重写
*
* 6. 一个类如果直接父类的方法,和接口中默认的方法起了冲突,优先使用父类当中的方法*/


public interface MyInterfaceA {
    //错误写法:接口不能有静态代码块
//    static {
//
//    }

    //错误写法:接口不能有构造方法
//    public MyInterfaceA(){
//
//    }
    public abstract void methodA();

    public abstract void methodAbs();

    public default void methodDefault(){
        System.out.println("默认方法AAA");
    }
}
package cn.itcast.day10.demo02;

public interface MyInterfaceB {

    public abstract void methodB();

    public abstract void methodAbs();

    public default void methodDefault() {
        System.out.println("默认方法BBB");
    }
}
 
/*
* 1. 类与类之间是单继承的,直接父类只有一个
* 2. 类与接口之间是多实现的,一个类可以实现多个接口
* 3. 接口与接口之间是多继承的
*
* 4. 多个父接口中的抽象方法如果冲突,没关系
* 多个父接口中的默认方法如果冲突,有关系
* */
 
public interface MyInterfaceA<pu> {
    public abstract void methodA();

    public abstract void methodCommon();

    public default void methodDefault(){
        System.out.println("AAA");
    }

}

public interface MyInterfaceB {
    public abstract void methodB();

    public abstract void methodCommon();

    public default void methodDefault(){
        System.out.println("BBB");
    }

}
/*
* 这个子接口中有几个方法?
* 4个方法{
*   methodA、methodB、methodCommon、method
* }
* */
public interface MyInterface extends MyInterfaceA, MyInterfaceB{

    public abstract void method();


    @Override
    default void methodDefault() {

    }

}
public class MyInterfaceImpl implements MyInterface{
    @Override
    public void method() {

    }

    @Override
    public void methodA() {

    }

    @Override
    public void methodB() {

    }

    @Override
    public void methodCommon() {

    }
}
 
原文地址:https://www.cnblogs.com/zeon/p/13479176.html