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();
        }
    }
    猪猪侠要努力呀!
  • 相关阅读:
    Maven仓库是什么
    Maven的工程类型有哪些?
    什么是Maven?
    MyBatis 与 Hibernate 有哪些不同?
    MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
    使用过Redis做异步队列么,你是怎么用的?
    我们怎样才能在动作类中获得Servlet API请求,响应,HttpSession等对象?
    forward 和redirect的区别 ?
    你所知道的微服务技术栈有哪些?请列举一二
    SpringMVC流程?
  • 原文地址:https://www.cnblogs.com/mlllily/p/14927452.html
Copyright © 2011-2022 走看看