• 【学习笔记】 唐大仕—Java程序设计 第4讲 类、包和接口之4.6 接口


    【学习笔记】 唐大仕—Java程序设计 第4讲 类、包和接口之4.6 接口

    接口(interface)

    • 接口,某种特征的约定
       定义接口interface
        所有方法都自动是public abstract
       实现接口implements
        可以实现多继承
        与类的继承关系无关
    • 面向接口编程,而不是面向实现
       Flyable f = new Bird()
       Java中有大量的接口
      其中Flyable为一个接口 Bird为实现此接口的一个类

    接口的作用

    • 1.通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系,从而在一定意义上实现了多重继承
    • 通过接口可以指明多个类需要实现的方法
    • 通过接口可以了解对象的交互界面,而不需要了解对象所对应的类

    示例

    • 下面我们给出一个接口的定义:
    interface Collection{
        void add(Object obj);
        void delete(Object obj);
        Object find(Object obj);
        int size();
    }
    
    • 通常接口以able或iable结尾,表名接口能完成一定的行为
    • 接口声明中还可以包括对接口访问权限以及它的父接口列表。完整的接口声明如下
    [public]interface interfaceName [extends listOfSuperInterface]{
        ......;
    }
    
    • 其中public指明任意类均可以使用这个接口,缺省情况下,只有与该接口定义在同一个包中的类才可以访问这个接口
    • extends子句与类声明中的extends子句基本相同,不同的是一个接口可以有多个父接口,用逗号隔开,而一个类只能有一个父类。子接口继承父接口中所有的常量和方法

    接口类型

    • 接口可以作为一种引用类型来使用。任何实现该接口的类的实例都可以存储在该结构类型的变量中,通过这些变量可以访问类所实现的接口中的方法。Java运行时系统动态地确定该使用哪个类中的方法
    • 把接口作为一种数据类型可以不需要了解对象所对应的具体的类,以前面所定义的接口Collection和实现该接口的类FIFOQueue为例,下例中,我们以Collection作为引用类型来使用
    class InterfaceType{
        public static void main(String args[]){
            Collection c = new FIFOQueue();
            ......
            c.add(obj);
            ...
        }
    }
    

    接口中的常量

    • 接口体重可以包含常量定义
    • 常量定义的格式为:type NAME = value;
    • 其中type可以是任意类型,NAME是常量名,通常都大写,value是常量值
    • 在接口中定义的常量可以被实现该接口的多个类所共享,它与C中用#define以及C++中用const定义的常量是相同的
    • 在接口中定义的常量具有public,static,final的属性

    枚举

    • 从JDK1.5起,可以使用枚举
    enum Light{ Red, Yellow, Green }
    
    • 使用:
        Light light = Light.Red;
        switch( light ){ case Red:...break; }
    
    • Java中的枚举是用class来实现的,可以复杂地使用

    Java8中的接口

    • Java8以上,接口成员还可以是:
       static方法
       具有实现体的方法(default方法)
        默认方法的好处是:提供了一个默认实现,子类在implements可以不用再重新写了
  • 相关阅读:
    Cesium绘制一个旋转发光的四棱锥
    使用Nginx实现反向代理转载
    Nginx 代理本地文件夹
    WebGIS工程师的技能包
    nginx启动报错(1113: No mapping for the Unicode character exists in the target multibyte code page)
    Cesium动态扩散圆
    Billboard高度模式
    Nginx 配置问题 server directive is not allowed here in /etc/nginx/nginx.conf:69
    Nginx 安装(打开、关闭、重启)
    Cesium Primitive也可以设置贴地,通过外观设置
  • 原文地址:https://www.cnblogs.com/dreamcoding/p/9906596.html
Copyright © 2020-2023  润新知