zoukankan      html  css  js  c++  java
  • JavaSE基础入门_010_接口

    接口

    接口的语法

    • 接口相当于特殊的抽象类,定义方式、组成部分与抽象类类似。

    • 使用 interface 关键字定义接口

    • 只能定义:

      1. 公开静态常量

      2. 公开抽象方法

    interface MyInterface{
        public static final String FIELD = "value";
        public abstract void method();
    }

    接口与抽象类的异同

    • 相同:

      • 可编译成字节码文件。【.class文件】

      • 不能创建对象。【不是类,没有构造方法】

      • 可以作为引用类型。

      • 具备Object类中所定义的方法。

     

    • 不同:

      • 所有属性都是公开静态常量,隐式【默认】使用public static final 修饰。

      • 所有方法都是公开抽象方法,隐式【默认】使用public abstract 修饰。

      • 没有构造方法、动态代码块、静态代码块。

     

    什么是接口

    • 微观概念:接口是一种能力和约定。

      • 接口的定义:代表某种能力。

      • 方法的定义:能力的具体要求。

    • 经验:java为单继承,当父类的方法种类无法满足子类需求时,可实现接口扩充子类能力。

    • 接口支持多实现,可为类扩充多种能力。【implements 关键字实现,逗号“ ,”实现分隔】

     

    • 宏观概念:接口是一种标准。

     

     

    接口引用

    • 同父类一样,接口也可声明为引用,并指向实现类对象。

    • 注意:

      • 仅可调用接口中所声明的方法,不可调用实现类中独有的方法。

      • 可强转回实现类本身类型,进行独有方法调用。

     

    接口的多态

    Dog myDog = new Dog();//将狗当够看
    Animal a = myDog;//将狗当动物看
    Runnable r = myDog;//将狗当会跑的东西看
    Swimmable s = myDog;//将狗当会游泳的东西看
    • 多种不同类型的引用指向同一个对象时,表示看待对象的视角不同。

    • 不同引用所能看到的对象范围不同,只能调用自身类型中所声明的部分。

    • 不同引用类型,仅可调用自身类型中所声明的方法。

     

    接口的规范

    • 任何类在实现接口时,必须实现接口中所有的抽象方法,否则此类为抽象类。

    • 实现接口中的抽象方法时,访问修饰符必须是public。

     

    常见关系

    • 类与类:

      • 单继承

      • extends 父类名称

    • 类与接口:

      • 多实现

      • implements 接口名称1 , 接口名称2 , 接口名称n

    • 接口与接口:

      • 多继承【行为的叠加】

      • extends 父接口1,父接口2,父接口n

      • interface IA{
            void m1();
        }
        ​
        interface IB {
            void m2();
        }
        ​
        interface IC extends IB,IA{
            void m3();
        }

     

    常量接口

    • 将多个常用于表示状态或固定值的常量,以静态常量的形式定义在接口中统一管理,提高代码可读性

     

    接口回调

    接口回调:现有接口的使用者,后有接口的实现者

     

    回调原理

    正常逻辑:工具的调用者【程序员】---》工具【接口的使用者】---》接口【标准】---》接口的实现者【程序员】

    实际逻辑:接口【标准】---》工具【接口的使用者】---》接口的实现者【程序员】---》工具的调用者【程序员】

     

    接口的好处

    • 程序的耦合度降低。

    • 更自然的使用多态。

    • 设计与实现完全分离。

    • 更容易搭建程序框架。

    • 更容易更换具体实现。

     

    总结

    • 什么是接口:

      • 微观:接口是一种能力和约定。

      • 宏观:接口是一种标准。

    • 接口和类的异同:

      • 没有构造方法,仅可定义公开静态常量与公开抽象方法。

    • 接口的应用:

      • Java为单继承,当父类的方法种类无法满足子类需求时,可实现接口扩充子类能力。

    • 接口的规范:

      • 任何类在实现接口时,必须实现接口中所有的抽象方法,否则此类为抽象类。

      • 实现接口中的抽象方法时,访问修饰符必须是public。

    • 什么是常量接口:

      • 将多个常用于表示状态或固定值的变量,以静态常量的形式定义在接口中统一管理。

    • 什么是接口回调:

      • 现有接口的使用,后有接口的实现者。

  • 相关阅读:
    POJ 1681 Painter's Problem(高斯消元法)
    HDU 3530 Subsequence(单调队列)
    HDU 4302 Holedox Eating(优先队列或者线段树)
    POJ 2947 Widget Factory(高斯消元法,解模线性方程组)
    HDU 3635 Dragon Balls(并查集)
    HDU 4301 Divide Chocolate(找规律,DP)
    POJ 1753 Flip Game(高斯消元)
    POJ 3185 The Water Bowls(高斯消元)
    克琳:http://liyu.eu5.org
    WinDbg使用
  • 原文地址:https://www.cnblogs.com/77-is-here/p/12960257.html
Copyright © 2011-2022 走看看