[Java]学习笔记42:继承父类并实现多个接口

    科技2024-12-24  5

    使用接口的时候,需要注意

    1.接口是没有静态代码块或者构造方法的。 2.一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。 格式:

    public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB{ //覆盖重写所有抽象方法 }

    3.如果实现类所实现的多个接口中,存在重复的抽象方法,那么只需要覆盖写一次即可。 4.如果实现类没有覆盖重写所有接口中的所有抽象方法,那么实现类就必须是一个抽象类。 5.如果实现类所实现的多个接口中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。 6.如果一个类的直接父类中的方法,和接口中的默认方法产生了冲突,则优先使用父类中的方法。

    MyInterfaceA

    public interface MyInterfaceA { public abstract void methodA(); public abstract void methodAbs(); public default void methodDefault(){ System.out.println("默认方法AAA"); } }

    MyInterfaceB

    public interface MyInterfaceB { public abstract void methodB(); public abstract void methodAbs(); public default void methodDefault(){ System.out.println("默认方法BBB"); } }

    MyInterfaceAbstract

    public abstract class MyInterfaceAbstract implements MyInterfaceA,MyInterfaceB{ @Override public void methodA() { } @Override public void methodAbs() { } @Override public void methodDefault() { } public void mehtodDefault(){ } }

    MyInterfaceImpl

    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 methodAbs(){ System.out.println("覆盖重写了AB接口都有的抽象方法"); } public void methodDefault() { } }

    MyInterface

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

    fu

    public class fu { public void method(){ System.out.println("父类方法"); } }

    zi

    public class zi extends fu implements MyInterface{ }

    demo01Interface

    public class demo01Interface { public static void main(String[] args) { zi z = new zi(); z.method(); } } 父类方法 Process finished with exit code 0
    Processed: 0.053, SQL: 8