Java 类实现接口

1. 一个类的直接父类是唯一的,但是一个类可以同时实现多个接口

public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {

// 覆盖重写所有抽象方法

}

2. 实现类没有覆盖重写接口中所有的抽象方法,实现类必须是一个抽象类

3. 实现类实现的多个接口存在重复的抽象方法,实现类只需要实现一次即可

4. 实现类实现的多个接口存在重复的默认方法,实现类必须要重写该默认方法

5. 一个类直接父类的方法,和接口中的默认方法产生冲突,优先父类中的方法

//接口A
public interface MyInterfaceA {
    public abstract void methodA();

    public abstract void method();

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


//接口B
public interface MyInterfaceB {
    public abstract void methodB();

    public abstract void method();

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


//实现多个接口的类
public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {

    @Override
    public void methodA() {
        System.out.println("覆盖重写A方法");
    }

    @Override
    public void methodB() {
        System.out.println("覆盖重写B方法");
    }

    @Override
    public void method() {
        System.out.println("覆盖重写AB接口重复的抽象方法");
    }

    @Override
    public void methodDefault() {
        System.out.println("对多个接口中冲突的默认方法覆盖重写");
    }
}

//抽象实现类
public abstract class MyInterfaceAbstract implements MyInterfaceA, MyInterfaceB {
    @Override
    public void methodA() {

    }

    @Override
    public void method() {

    }

    @Override
    public void methodDefault() {

    }
}
//父类方法和接口默认方法冲突
public class Fu {
    public void method(){
        System.out.println("父类中的方法");
    }
}

//接口
public interface MyInterface {
    public default void method(){
        System.out.println("接口中的默认方法");
    }
}


//子类
public class Zi extends Fu implements MyInterface{
}


//测试
public class Demo01Interface {
    public static void main(String[] args) {
        Zi zi = new Zi();
        zi.method();
    }
}
猪猪侠要努力呀!
原文地址:https://www.cnblogs.com/mlllily/p/14927452.html