首页 > 代码库 > [总结] 2016.12.8 星期四

[总结] 2016.12.8 星期四

                                                      接口

引出接口:我们发现没有继承的类,也有能共享的行为。接口是一种独立于类 的新机制,关注的是行为。
当我们发现有行为在多个没有继承关系的类之间共有,我们就要把他抽取到接口中,而不是抽到父类中

定义接口--关键字 interface 类名+able
属性 -- 只能公共静态常量属性 - - 不写public static final这三个关键字也是默认这种情况

    public static final int a  = 100;
    
    public static int b = 200;
    
    public int c = 300;

    int d = 400;
构造 ---接口不能有构造,即接口也不能产生对象
接口作用:
    1.让类实现接口,使用implement关键字,并且重写接口中的抽象方法
    2.如果一个类实现一个接口,但不能实现它所有抽象方法,那它只能是抽象类
    3.一个类可以在继承父类的同时实现多个接口
行为---只能是公共的抽象方法---就算不写修饰符也是默认这种情况,这说明接口的关注点和丰富度是体现在方法上的。
    在Jdk1.7之后,允许接口拥有了实现了的方法,但必须使用default关键字,接口的意义就在这里---让没有继承关系的类共享这些

行为,各有各的实现。
注意几点:
    1.接口可以继承接口,而是多继承,仍用Extends关键字
    2.接口尽量定义小接口--接口的隔离原则
    3.接口应用于多态,接口的引用 = 实现类的对象
    列: Serviceable ser = new NewMachine();
    4.如果没有实现接口,就算有相同的方法,也不能用接口的引用去指向

比较抽象类与接口
抽象类:
    1. abstract class 定义
    2.语法,抽象方法必须是abstract定义
    3.可以有属性,构造方法,可以有实现了的方法
    4.使用语法:用子类继承抽象类,extends
    5.设计时;与生俱来的方法都写在抽象类
接口:
    1.用interface定义
    2.不能有变量属性,属性只能是静态公共常量,不能有构造
    3.jdk1.7后可以有实现了方法但必须加default
    4.类可以用implements实现接口,接口可以用extends继承接口
    5.设计时:附属添加方法写在接口中





[总结] 2016.12.8 星期四