zoukankan      html  css  js  c++  java
  • 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("对多个接口当中冲突的默认方法进行了覆盖重写");
        }
    }
    
  • 相关阅读:
    Netty入门——客户端与服务端通信
    使用配置文件自定义Ribbon配置
    使用Java代码自定义Ribbon配置
    Spring Cloud Ribbon入门
    负载均衡简介
    常见的几种负载均衡算法
    Eureka编程
    Eureka多机高可用
    Maven项目打包成可执行Jar文件
    Eureka单机高可用伪集群配置
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12595435.html
Copyright © 2011-2022 走看看