抽象类和抽象方法
- 基类存在的目的往往是为它的所有导出类创建一个通用接口,所以才有抽象类的意义。
- 如果一个类包含或多个抽象方法,该类必须被限定为抽象类(否则,编译器就会报错)
接口
- interface这个关键字产生一个完全抽象的类,它根本就没有提供任何具体实现。它允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。
- 接口只提供了形式,未提供任何具体实现。
创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式
完全解耦
- 其实就是做了一个适配器模式,通过一个adapter去适配你没有继承或实现的关系。
public class FilterAdapter implements Processor{
Filter filter;
public FilterAdapter(Filter filter) {
this.filter = filter;
}
@Override
public String getName() {
// TODO Auto-generated method stub
return filter.name();
}
@Override
public Object process(Object input) {
// TODO Auto-generated method stub
return filter.process((Waveform) input);
}
}
Java的多重继承
使用接口的核心原因
- 为了能够向上转型为多个基类型(以及由此而带来的灵活性)。
- 防止客户端程序员创建该类的对象,并确保这仅仅是建立一个接口。
通过继承来扩展接口
- 模模糊糊
适配接口
- 接口最吸引人的原因之一就是允许同一个接口具有多个不同的具体实现。
- 可以再任何现有类之上添加新的接口,意味着让方法接收接口类型,是一种让任何类都可以对该方法进行适配的方式。
接口中的域
- 也是模模糊糊
- 接口中定义的域不能是空“final”,但是可以被非常量表达式初始化。
- 当然,这些域不是接口的一部分,他们的值被存储在该接口的静态存储区域内。
接口与工厂
- 接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方法就是工厂方法设计模式。
网友评论