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(); } }
相关文章推荐
- java设计模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式,。 行为型模式,共十一种:策略模式、模板方法)
- Java基础之面向对象(三)--继承、抽象类、接口、final修饰符、模版方法模式
- 黑马程序员_Java基础_面向对象(继承、子父类变量和函数以及构造函数特点、final关键字、抽象类、模版方法模式、接口)
- Java类、属性、方法、对象、继承、多态、接口、抽象类...
- JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展
- Java基础之面向对象(三)--继承、抽象类、接口、final修饰符、模版方法模式
- 黑马程序员 Java基础 面向对象:继承、final关键字、抽象类、模版方法模式、接口、多态、Object类
- java 抽象类 以及模块方法设计模式,接口
- JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展
- 2.java设计模式接口型模式(读书笔记)(讲解接口和抽象类)
- java 设计模式 策略模式,comparable 接口,compareTo 方法
- Java基础——继承+子父类相关特点+Final关键字+抽象类+模板方法设计模式+接口
- Java笔记2 面向对象<3>final关键字、抽象类、模板方法模式、接口
- java 工厂+策略+模板方法模式实现单接口多种类型文件解析
- 黑马程序员—Java面向对象(抽象类、模板方法设计模式、接口、多态、内部类)
- java中抽象类与接口中方法访问修饰符问题
- 抽象类与接口与模板方法设计模式
- java 继承 方法重写 自动转型 多态 接口 抽象类
- 分清Java抽象方法、抽象类以及接口
- Java策略模式的简单应用实现方法