• Java_接口使用


    1. 接口的使用

    1.1 定义接口

    package cn.itcast.day10.demo02;
    
    public interface MyInterface {
    
        public default void method() {
            System.out.println("接口的默认方法");
        }
    
    }
    
    package cn.itcast.day10.demo02;
    
    public interface MyInterfaceB {
    
        // 错误写法!接口不能有静态代码块
    //    static {
    //
    //    }
    
        // 错误写法!接口不能有构造方法
    //    public MyInterfaceA() {
    //
    //    }
    
        public abstract void methodB();
    
        public abstract void methodAbs();
    
        public default void methodDefault() {
            System.out.println("默认方法BBB");
        }
    
    }
    

    1.2 父类

    package cn.itcast.day10.demo02;
    
    public class Fu {
    
        public void method() {
            System.out.println("父类方法");
        }
    
    }
    

    1.3 子类 

    package cn.itcast.day10.demo02;
    
    public class Zi extends Fu implements MyInterface {
    }
    

    1.4 实现接口

    package cn.itcast.day10.demo02;
    
    /*
    使用接口的时候,需要注意:
    
    1. 接口是没有静态代码块或者构造方法的。
    2. 一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
    格式:
    public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {
        // 覆盖重写所有抽象方法
    }
    3. 如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
    4. 如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。
    5. 如果实现类锁实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。
    6. 一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类当中的方法。
     */
    public class Demo01Interface {
    
        public static void main(String[] args) {
            Zi zi = new Zi();
            zi.method();
        }
    
    }
    package cn.itcast.day10.demo02;
    
    public class MyInterfaceImpl /*extends Object*/ implements MyInterfaceA, MyInterfaceB {
    
        @Override
        public void methodA() {
            System.out.println("覆盖重写了A方法");
        }
    
    
        @Override
        public void methodB() {
            System.out.println("覆盖重写了B方法");
        }
    
        @Override
        public void methodAbs() {
            System.out.println("覆盖重写了AB接口都有的抽象方法");
        }
    
        @Override
        public void methodDefault() {
            System.out.println("对多个接口当中冲突的默认方法进行了覆盖重写");
        }
    }
    
  • 相关阅读:
    【STM32F429】第5章 ThreadX NetXDUO网络协议栈介绍
    【STM32H7】第5章 ThreadX NetXDUO网络协议栈介绍
    【STM32F407】第5章 ThreadX NetXDUO网络协议栈介绍
    【STM32H7】第25章 ThreadX GUIX复选框Checkbox回调事件处理
    【STM32F429】第23章 ThreadX GUIX复选框Checkbox回调事件处理
    【STM32H7】第4章 初学ThreadX NetXDUO准备工作
    【STM32F429】第4章 初学ThreadX NetXDUO准备工作
    【STM32F407】第4章 初学ThreadX NetXDUO准备工作
    【STM32H7】第3章 PHY芯片和STM32的MAC基础知识
    【STM32F429】第3章 PHY芯片和STM32的MAC基础知识
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12595435.html
Copyright © 2020-2023  润新知