• 6.6 Java8 改进的接口


    接口(interface)  

      可以说是一种纯粹的“抽象类”,即所有方法都是抽象方法。(但在Java8中进行了改进,允许在接口中定义默认方法、类方法,必须有方法体。默认方法必须加default,类方法必须加static,什么都不加的是public abstract)
      接口是从多个相似类中抽象出来的规范。是一种规范和实现分离的设计,是一种松耦合的设计。

    Java8中接口的定义

    [public] interface 接口名 extends 父接口1, 父接口2...
    {
        零到多个常量定义...
        零到多个抽象方法定义...   
        零到多个内部类、接口、枚举定义...   
        零到多个默认方法、类方法定义...   
    }

    说明:
      修饰符是public或省略,省略是采用包权限访问控制符,只有在相同包下才可以访问  

    接口中不能包含构造器和初始化块,可以包含成员变量(只能是静态常量)、方法(只能是抽象实例方法、类方法、默认方法)、内部类(内部接口、枚举)。

    例子:

    package hello;
    
    public interface Output {
        // 接口里定义的成员变量,系统自动加上 public static final 修饰
        int MAX_CACHE_LINE = 50;//相当于 public static final int MAX_CACHE_LINE = 50;
        
        // 抽象方法, 系统自动会加上 public abstract
        void out();
        void getData(String msg);
        
        // 默认方法, 必须手动加上 default,并且必须有方法体
        default void print(String... msgs){
            for(String s: msgs){
                System.out.println(s);
            }
        }
        default void test(){
            System.out.println("默认的test()方法");
        }
        
        // 类方法,必须手动加上 static ,并且必须有方法体
        static String staticTest(){
            return "接口中的类方法";
        }
    }

    常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。

    昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。
  • 相关阅读:
    如何知道交换机的某port接入端的IP地址
    列举系统安装的所有可用的数据库提供程序
    重建需要为人民服务
    示例DataSet的构成组件,手工打造DataSet
    2009年7月31日笔记本又换了 thinkpad w500rq3
    Python体验(04)字典dictionary
    la la love on my mind
    类的继承和封装
    Oracle10gR2在Ubuntu10.10下的安装配置及链接测试
    大容量数据传输UI无响应怎么办:异步查询大结果集!
  • 原文地址:https://www.cnblogs.com/htj10/p/13676007.html
Copyright © 2020-2023  润新知