一模板模式的簡(jiǎn)單規(guī)則
創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的東陽(yáng)網(wǎng)站建設(shè)公司,東陽(yáng)接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行東陽(yáng)網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
抽象父類(lèi)可以只定義需要使用的某些方法,把不能實(shí)現(xiàn)的部分抽象成抽象方法,留給其子類(lèi)去實(shí)現(xiàn)。
父類(lèi)中可能包含需要調(diào)用其它系列方法的方法,這些被調(diào)用的方法既可以由父類(lèi)實(shí)現(xiàn),也可以由其子類(lèi)實(shí)現(xiàn)。父類(lèi)里提供的方法只定義了一個(gè)通用算法,其實(shí)現(xiàn)也許并不完全由自身實(shí)現(xiàn),而必須依賴(lài)于其子類(lèi)的輔助。
二模板模式應(yīng)用
1代碼示例 下載
Java代碼
public abstract class SpeedMeter
{
// 轉(zhuǎn)速
private double turnRate;
public SpeedMeter()
{
}
// 把返回車(chē)輪半徑的方法定義成抽象方法
public abstract double getRadius();
public void setTurnRate(double turnRate)
{
this.turnRate = turnRate;
}
// 定義計(jì)算速度的通用算法
public double getSpeed()
{
// 速度等于 車(chē)輪半徑 * 2 * PI * 轉(zhuǎn)速
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運(yùn)行結(jié)果
26.389378290154266
3結(jié)果分析
在這個(gè)范例的抽象父類(lèi)中,父類(lèi)的普通方法依賴(lài)于一個(gè)抽象方法,而抽象方法則推遲到子類(lèi)中提供實(shí)現(xiàn)。