接口---注意事项

接口—注意事项

  1. 注意事项

    • 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(); // 父类的方法
          }
      
      }
      
      // 运行结果
      父类的方法
      
    1. 接口多继承

      • 接口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() {
        
            }
        }
        
发布了275 篇原创文章 · 获赞 89 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zsx1314lovezyf/article/details/102741086