就是在一个抽象类中
分为 基本抽象方法(是变化的,留给子类具体实现) (有protected修饰,符合迪米特法则)
模板方法(是子类不变的步骤,因此给它保装到抽象的父类中)(为了防止恶意的操作,一般模板方法都加上final表示不允许被覆写)
拓展:
就是说生产出来的子类有点想任意控制抽象类中的方法
// 在H1中设置一个标记,可以手动控制其标记
private boolean alarmFlag = true;
public void setAlarm(boolean isAlarm) {
this.alarmFlag = isAlarm;
}
//H2复写覆类的声音的方法
//客户根据提示完成相应的操作:0不需要,1代表需要
String type = (new BufferedReader(new InputStreamReader(System.in))).readLine();
不过没这个必要?(那为什么要继承呢?其实模板方法已经相当于父类调用子类,一种曲线救国的方式)