接口和内部类提供了将接口与实现分离的更加结构化的方法。
9.1 抽象类和抽象方法
抽象方法不提供方法的实现,而是为其子类提供一个方法的接口!
只有声明没有实现,如
abstract void f();
包含抽象方法的类必须限定成为抽象类!
好处:使类的抽象性明确起来
9.2 接口
完全抽象的类,只提供方法名和参数列表,不提供实现。
接口被用来建立类与类之间的协议??
接口中的方法默认是public的
9.3 完全解耦
策略模式:根据所传递的参数对象的不同而具有不同行为的方法
适配器模式:类不能修改,不具有复用性。可以使用***适配器类包装一层“外壳”并实现相关接口,实现复用!
9.4 多重继承
java中运行一个类实现多个接口,可以向上转型为每个接口。
9.5 通过继承来扩展接口
接口也可以继承!
组合接口和继承时的命名冲突:尽量避免!
9.6 适配接口
接口的常用方法就是策略设计模式。
一个不能改变的类怎么使用新的接口?——适配器模式
使用组合或继承得到原类,并让新类实现接口!
9.7 接口中的域
static和final的,可以用来表示常亮。
9.8 嵌套接口
略
9.9 接口与工厂
生成遵循某个接口的对象的典型方式——工厂方法设计模式
在工厂对象上调用创建方法
添加额外级别的间接性,使接口和实现完全分离
下一章,工厂模式更加优雅的是实现方式——匿名内部类