• 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();
        }
    }
    猪猪侠要努力呀!
  • 相关阅读:
    Node.js安装及环境配置之Windows篇
    C++ STL中Map的按Key排序和按Value排序
    设计模式之观察者模式(c++)
    C/C++回调函数
    c++ string详解 assign
    C++ unsigned long 转化为 unsigned char*
    unsigned char 与unsigned long互换
    微信小程序的登陆流程详解
    谷歌帮:中国最牛的创业帮派
    创业公司打造顶级团队的七个方法
  • 原文地址:https://www.cnblogs.com/mlllily/p/14927452.html
Copyright © 2020-2023  润新知