abstract class GetTime
{
public final void gettime() //final可以防止gettime()被子类复写,增强了代码的安全性
{
long start = System.currentTimeMillis();
runcode();
long end = System.currentTimeMillis();
System.out.println("毫秒:"+(end-start));
}
public abstract void runcode(); /*此处通过将runcode()定义为abstract类型,可以强迫子类复写,从而完善runcode()的功能*/
}
class SubTime extends GetTime
{
public void runcode() //子类必须复写runcode()功能才可以创建对象
{
for (int x=0; x<4000; x++)
{
System.out.print(x);
}
}
}
class TemplateDemo
{
public static void main(String[] args)
{
SubTime st = new SubTime();
st.gettime();
}
}
/*以上这段代码的思想是,通过abstract关键字,把父类中无法确定功能主体的代码暴露出去,强迫子类来完善代码的功能主体。*/