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(); } }
猪猪侠要努力呀!