接口—注意事项
-
注意事项
-
Zi类
package cn.xiaoge.day10.demo02; public class Zi extends Fu implements MyInterface { }
-
Fu类
package cn.xiaoge.day10.demo02; public class Fu { public void method() { System.out.println("父类的方法"); } }
-
接口MyInterface
package cn.xiaoge.day10.demo02; public interface MyInterface { public default void method() { System.out.println("接口口的默认方法"); } }
-
执行路口
package cn.xiaoge.day10.demo02; /* 使用接口的时候, 需要注意: 1. 接口是没有静态代码块或者构造方法的. 2. 一个类的直接父类是唯一的, 但是一个类可以同时实现多个接口. 格式: public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB{ // 覆盖重写所有抽象方法 } 3. 如果实现类所实现的多个接口中, 存在重复的抽象方法, 那么只需要覆盖重写一次即可. 4. 如果实现类没有覆盖重写所有接口当中的所有抽象方法, 那么实现类就必须是一个抽象类. 5. 如果实现类所实现的多个接口当中, 存在重复的默认方法, 那么实现类一定要对冲突的默认方法进行覆盖重写. 6. 一个类如果直接父类当中的方法, 和接口当中的方法, 产生了冲突, 优先用父类当中的方法. */ public class Demo01Interface { public static void main(String[] args) { Zi zi = new Zi(); zi.method(); // 父类的方法 } } // 运行结果 父类的方法
-
接口多继承
-
接口MyInterfaceA
package cn.xiaoge.day10.demo02; public interface MyInterfaceA { // 错误写法! 接口不能有静态代码块 // static { // } // 错误写法! 接口不能有构造方法 // public MyInterfaceA(){ // } public abstract void methodA(); public abstract void methodAbs(); public default void methodDefault() { System.out.println("AAA"); } }
-
接口MyInterfaceB
package cn.xiaoge.day10.demo02; public interface MyInterfaceB { // 错误写法! 接口不能有静态代码块 // static { // } // 错误写法! 接口不能有构造方法 // public MyInterfaceA(){ // } public abstract void methodB(); public abstract void methodAbs(); public default void methodDefault() { System.out.println("BBB"); } }
-
接口MyinterfaceAbstract
package cn.xiaoge.day10.demo02; public abstract class MyinterfaceAbstract implements MyInterfaceA, MyInterfaceB { @Override public void methodA() { } @Override public void methodAbs() { } @Override public void methodDefault() { } }
-
-