需求
设计一个抽象类(Template),完成如下功能:
- 编写calculateTime(),计算某段代码的消耗时间。
- 编写抽象方法job()
- 编写一个子类Sub,继承抽象类Template,并实现job方法。
实现
Template
```java package test;
abstract public class Template { //抽象类-模板设计模式
public abstract void job();//抽象方法
public void calculateTime() {//实现方法,调用job方法
//得到开始的时间
long start = System.currentTimeMillis();
job(); //动态绑定机制
//得的结束的时间
long end = System.currentTimeMillis();
System.out.println("任务执行时间 " + (end - start));
}
}
<a name="NAG2B"></a>
## AA
```java
package test;
public class AA extends Template {
//计算任务
//1+....+ 800000
@Override
public void job() { //实现Template的抽象方法job
long num = 0;
for (long i = 1; i <= 800000; i++) {
num += i;
}
}
}
BB
package test;
public class BB extends Template{
@Override
public void job() {//这里也去,重写了Template的job方法
long num = 0;
for (long i = 1; i <= 80000; i++) {
num *= i;
}
}
}
Main
package test;
public class Main {
public static void main(String[] args) {
AA aa = new AA();
aa.calculateTime();
BB bb = new BB();
bb.calculateTime();
}
}