需求:
1)有多个类,完成不同的任务job
2)要求能够统计得到各自完成任务的时间
最佳实践:
设计一个抽象类(Template),能完成如下功能:
1)编写方法calculateTime(),可以计算某段代码的耗时时间
2)编写抽象方法job()
3)编写一个子类Sub,继承抽象类Template,并实现job方法
4)测试类TestTemplate
java
package com.abstract_;
abstract public class Template {//抽象父类
public void calcuteTime(){
long start = System.currentTimeMillis();//得到开始的时间
job();
long end = System.currentTimeMillis();//得到结束时间
System.out.println("执行时间为" + (end - start));
}
abstract public void job();//抽象方法
}
AA和BB类分别完成两个不同的任务
java
package com.abstract_;
public class AA extends Template{
//计算任务
//1+...+10000
public void job(){//实现父类的抽象方法
int num = 0;
for (int i = 0; i <= 1000000; i++) {
num += i;
}
}
}
java
package com.abstract_;
public class BB extends Template{
//计算任务
//1+...+10000
public void job(){
int num = 0;
for (int i = 0; i <= 8000000; i++) {
num *= i;
}
}
}
测试:
java
package com.abstract_;
public class TestTemplate {
public static void main(String[] args) {
AA aa = new AA();
aa.calcuteTime();
BB bb = new BB();
bb.calcuteTime();
}
}