您的位置:首页 > 编程语言 > Java开发

Thinking in java 读书笔记(六、接口:抽象类/方法,接口的属性和方法,策略模式,适配器模式,工厂模式)

2018-01-26 21:05 465 查看
一、

抽象类/抽象方法.
抽象方法是没有实体的,继承必须实现抽象方法,如果不实现抽象类的抽象方法,
则子类也是抽象类,抽象类可以没有抽象方法,但是有抽象方法一定是抽象类.


二、

接口的属性隐式的为public static final,而且必须要有初始值。接口的方法是默认public abstract的。
接口没有代码块。
这里注意了,接口是可以继承接口的,而且支持多继承= =。emmmm以后面试要是
问java是否支持多继承就这样说:java的class只能单一继承class,但是可以实现多个接口,而java的interface支持多继承来实现扩展。


三、

接口多继承中会有一种情况,多个接口的方法名相同,但是他们的返回类型或者参数不同,会报错,记得设计接口的时候不要搞出同名抽象方法。


四、

书上应该是第一次提到了设计模式:适配器模式,策略模式。之前有看过一点点的head first 设计模式,所以还蛮好理解。
适配器模式,就是新建一个adapter类继承旧的interface,然后传入新的interface(书上为构造器传入),然后将旧的interface的方法用新的interface方法覆盖即可。策略模式更易懂,就是代码在设计的时候少继承多用接口,让代码更加灵活。


五、

thinking in Java 的小tip:在SE5之前,Java并没有enum类型,所以要生成enum就只能是在接口中定义属性,当成enum用。因为static final的产生的效果和c++的enum产生的一样。


六、

这章讲到的第三个设计模式:工厂模式,工厂模式其实就是通过调用方法产生对象。
目前书上是通过接口,其实也可以通过匿名内部类实现。
以下为工厂模式具体demo:


interface Cycle{
void display();
}
interface CycleFactory{
Cycle getCycle();
}
class Unicycle implements Cycle{

@Override
public void display() {
System.out.println("This is unicycle");
}
}
class UnicycleFactory implements CycleFactory{

//其实也是协变返回类型的应用
@Override
public Cycle getCycle() {
return new Unicycle();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐