zoukankan      html  css  js  c++  java
  • 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();
        }
    }
    猪猪侠要努力呀!
  • 相关阅读:
    C++ primer 简读
    C++函数及类方法(待补充)
    C++参数传递-复制和引用
    c++动态分配内存
    C++内存与指针
    c++循环
    C++容器vector及迭代器对象iterator
    c++字符类型一些知识点
    CNN中卷积运算转化成矩阵乘法的实现——img2col+GEMM大矩阵乘法
    046 LeetCode go
  • 原文地址:https://www.cnblogs.com/mlllily/p/14927452.html
Copyright © 2011-2022 走看看