• 实现多接口和接口的多继承---Java


    /*使用接口的时候,需要注意:
    * 1.接口是没有静态代码块或者构造方法的
    * 2.一个类的直接父类只有一个,但是一个类可以同时实现多个接口;
    * 格式:
    * public class MyInterfaceA implements MyInterfaceA, MyInterfaceB{
    * //覆盖重写所有抽象方法
    * }
    *
    * 3. 如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可
    *
    * 4.如果实现类没有覆盖重写所有接口的所有抽象方法,那么实现类就必须是一个抽象类
    *
    * 5. 如果实现类实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法实现重写
    *
    * 6. 一个类如果直接父类的方法,和接口中默认的方法起了冲突,优先使用父类当中的方法*/


    public interface MyInterfaceA {
        //错误写法:接口不能有静态代码块
    //    static {
    //
    //    }
    
        //错误写法:接口不能有构造方法
    //    public MyInterfaceA(){
    //
    //    }
        public abstract void methodA();
    
        public abstract void methodAbs();
    
        public default void methodDefault(){
            System.out.println("默认方法AAA");
        }
    }
    package cn.itcast.day10.demo02;
    
    public interface MyInterfaceB {
    
        public abstract void methodB();
    
        public abstract void methodAbs();
    
        public default void methodDefault() {
            System.out.println("默认方法BBB");
        }
    }
     
    /*
    * 1. 类与类之间是单继承的,直接父类只有一个
    * 2. 类与接口之间是多实现的,一个类可以实现多个接口
    * 3. 接口与接口之间是多继承的
    *
    * 4. 多个父接口中的抽象方法如果冲突,没关系
    * 多个父接口中的默认方法如果冲突,有关系
    * */
     
    public interface MyInterfaceA<pu> {
        public abstract void methodA();
    
        public abstract void methodCommon();
    
        public default void methodDefault(){
            System.out.println("AAA");
        }
    
    }
    
    
    public interface MyInterfaceB {
        public abstract void methodB();
    
        public abstract void methodCommon();
    
        public default void methodDefault(){
            System.out.println("BBB");
        }
    
    }
    /*
    * 这个子接口中有几个方法?
    * 4个方法{
    *   methodA、methodB、methodCommon、method
    * }
    * */
    public interface MyInterface extends MyInterfaceA, MyInterfaceB{
    
        public abstract void method();
    
    
        @Override
        default void methodDefault() {
    
        }
    
    }
    public class MyInterfaceImpl implements MyInterface{
        @Override
        public void method() {
    
        }
    
        @Override
        public void methodA() {
    
        }
    
        @Override
        public void methodB() {
    
        }
    
        @Override
        public void methodCommon() {
    
        }
    }
     
  • 相关阅读:
    构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(中)
    构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(上)
    寻觅Azure上的Athena和BigQuery (二):神奇的PolyBase
    寻觅Azure上的Athena和BigQuery(一):落寞的ADLA
    Azure中国CDN全球覆盖功能初探
    第一次负责项目感悟
    C#读取静态类常量属性和值
    std::thread使用
    C#泛型编程
    C++模板类
  • 原文地址:https://www.cnblogs.com/zeon/p/13479176.html
Copyright © 2020-2023  润新知