/*
* 需求:获取一段程序运行的时间
* 原理:获取程序开始和结束时间并相减即可。
* 获取时间;System.currentTimeMillis()
* 当代码完成优化后,就可以解决此类问题
*
* 这种方式;模板方法设计模式
*
* 什么是模板方式呢?
* 在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,
* 那么,这时就将不确定的部分暴露出去,由该类的子类去完成。
* */
//package java.lang
abstract class getTime
{
public final void getTime()//final作用是为了不让子类改变这一函数。
{
long start=System.currentTimeMillis();
runcode();
long end=System.currentTimeMillis();
System.out.println();
System.out.print("毫秒:"+(end-start));
}
public abstract void runcode();//这个方法即是暴露出去的部分。
}
class subTime extends getTime
{
public void runcode()
{
for (int i=0;i<4000;i++)
{
System.out.print(i);
}
}
}
class getTimeDemo
{
public static void main(String[] args)
{
subTime st=new subTime();
st.getTime();
}
}
在class subTime extends getTime这行报错,错误提示The type subTime must implement the inherited abstract method getTime.runcode()。
解决方法:父类getTime中的runcode需要在子类subTime 中改写,但我将runcode函数错写为runTime函数,导致主函数在调用的时候不能找到runcode方法的具体函数体,因此报错,谨以此为戒,敲代码要仔细!!