首页 > 代码库 > [总结] 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 星期四