//这就是一个模板,限定为 final 防止子类重写该方法。
public final void calculateTime(){
long l1 = System.currentTimeMillis();
run();
long l2 = System.currentTimeMillis();
long time = l2 - l1;
System.out.println("运行时间为 " + time + " 毫秒。");
}
}
public class Sub1Class extends SupClass{
@Override
public void run() {
System.out.println("在计算 Sub1Class 的 run 方法执行时间。。。");
long sum = 0;
for (int i = 0; i < 1000000000; i++) {
sum = sum + i;
}
}
}
public class Sub2Class extends SupClass{
@Override
public void run() {
System.out.println("在计算 Sub2Class 的 run 方法执行时间。。。");
long sum = 0;
for (int i = 0; i < 10000000; i++) {
sum = sum + i;
}
}
}
// 测试代码
public abstract class TemplateTest {
public static void main(String[] args) {
SupClass class1 = new Sub1Class();
class1.calculateTime();
SupClass class2 = new Sub2Class();
class2.calculateTime();
}
}
在计算 Sub1Class 的 run 方法执行时间。。。
运行时间为 350 毫秒。
在计算 Sub2Class 的 run 方法执行时间。。。
运行时间为 10 毫秒。