zoukankan      html  css  js  c++  java
  • 实现多接口和接口的多继承---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() {
    
        }
    }
     
  • 相关阅读:
    20000+关注,开源两本硬核的原创电子书!
    Tail Latency学习
    Zabbix5.0 监控redis
    JAVA多线程(九) ForkJoin框架
    JAVA多线程(八) Condition源码分析
    程序员英语学习(二) 标点符号对应的英语单词汇总
    linux shell快速入门
    Ubuntu常用指令和快捷键汇总
    Win10常用快捷键汇总
    算法路漫漫(三) 荷兰国旗
  • 原文地址:https://www.cnblogs.com/zeon/p/13479176.html
Copyright © 2011-2022 走看看