抽象类和模板模式
一模板模式的簡單規則
抽象父類可以只定義需要使用的某些方法,把不能實現的部分抽象成抽象方法,留給其子類去實現。
父類中可能包含需要調用其它系列方法的方法,這些被調用的方法既可以由父類實現,也可以由其子類實現。父類里提供的方法只定義了一個通用算法,其實現也許并不完全由自身實現,而必須依賴于其子類的輔助。
?
二模板模式應用
1代碼示例? 下載
Java代碼??
public?abstract?class?SpeedMeter??
{??
????//?轉速??
????private?double?turnRate;??
????public?SpeedMeter()??
????{??
????}??
????//?把返回車輪半徑的方法定義成抽象方法??
????public?abstract?double?getRadius();??
????public?void?setTurnRate(double?turnRate)??
????{??
????????this.turnRate?=?turnRate;??
????}??
????//?定義計算速度的通用算法??
????public?double?getSpeed()??
????{??
????????//?速度等于?車輪半徑?*?2?*?PI?*?轉速??
????????return?java.lang.Math.PI?*?2?*?getRadius()?*?turnRate;??
????}??
}??
?
Java代碼??
public?class?CarSpeedMeter?extends?SpeedMeter??
{??
????public?double?getRadius()??
????{??
????????return?0.28;??
????}??
????public?static?void?main(String[]?args)??
????{??
????????CarSpeedMeter?csm?=?new?CarSpeedMeter();??
????????csm.setTurnRate(15);??
????????System.out.println(csm.getSpeed());??
????}??
}??
2運行結果
26.389378290154266
?
3結果分析
在這個范例的抽象父類中,父類的普通方法依賴于一個抽象方法,而抽象方法則推遲到子類中提供實現。
轉載于:https://blog.51cto.com/12208465/1864873
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: CH Round #30 摆花[矩阵乘法
- 下一篇: 微信公众平台向特定用户推送消息