使用接口的时候,需要注意
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