1700458850
//能发动,那还要能停下来,那才是真本事
1700458851
1700458852
protected abstract void stop();
1700458853
1700458854
//喇叭会出声音,是滴滴叫,还是哔哔叫
1700458855
1700458856
protected abstract void alarm();
1700458857
1700458858
//引擎会轰隆隆的响,不响那是假的
1700458859
1700458860
protected abstract void engineBoom();
1700458861
1700458862
//那模型应该会跑吧,别管是人推的,还是电力驱动,总之要会跑
1700458863
1700458864
final public void run(){
1700458865
1700458866
//先发动汽车
1700458867
1700458868
this.start();
1700458869
1700458870
//引擎开始轰鸣
1700458871
1700458872
this.engineBoom();
1700458873
1700458874
//要让它叫的就是就叫,喇嘛不想让它响就不响
1700458875
1700458876
if(this.isAlarm()){
1700458877
1700458878
this.alarm();
1700458879
1700458880
}
1700458881
1700458882
//到达目的地就停车
1700458883
1700458884
this.stop();
1700458885
1700458886
}
1700458887
1700458888
//钩子方法,默认喇叭是会响的
1700458889
1700458890
protected boolean isAlarm(){
1700458891
1700458892
return true;
1700458893
1700458894
}
1700458895
1700458896
}
1700458897
1700458898
在抽象类中,isAlarm是一个实现方法。其作用是模板方法根据其返回值决定是否要响喇叭,子类可以覆写该返回值,由于H1型号的喇叭是想让它响就响,不想让它响就不响,由人控制,其源代码如代码清单10-10所示。
1700458899
[
上一页 ]
[ :1.70045885e+09 ]
[
下一页 ]