java学习笔记16-抽象类
抽象类:
定义了一系列的属性和方法的类。抽象方法是不能直接实现功能。需要通过继承去实现具体方法。为了将静态的业务流程跟动态的实现分开。
工厂生产产品时,都需要准备材料,执行组装,产品销售等流程。但是对于不同的工厂。在执行这些流程是不同的。比如不同的工厂需要准备的材料不同。
创建抽象类的关键字是abstract
使用abstract的方法是抽象方法,没有看上去比较怪,没有用花括号括起来。这样去声明方法表示。这个方法不能马上实现。需要通过子类去实现。
创建两个子类来继承它,首先创建一个汽车工厂,取名CarFactory
再创建一个食品工厂,取名FoodFactory
如果继承后。没有实现相应方法。是会报错的。
在Factory调用,看下效果。
通过上面的代码会发现每次生成一个产品,每次都要调用这三个方法。能否把这三个方法在某处统一调用?
抽象类的一个特性是:抽象类不是必须要有抽象方法,也可以有实现了的方法;但是一旦有一个方法是抽象方法,此类必须设置为抽象类。
既然抽象类中可以有实现方法,那么就在Factory中定义一个总的生产方法,这个方法调用其他步骤来实现最终生产目的
也就是说,不用一个个的调用生产步骤的方法,只调用总生产方法就行了。这就是java模板方法模式。