需求

设计一个抽象类(Template),完成如下功能:

  1. 编写calculateTime(),计算某段代码的消耗时间。
  2. 编写抽象方法job()
  3. 编写一个子类Sub,继承抽象类Template,并实现job方法。

    实现

    image.png

    Template

    ```java package test;

abstract public class Template { //抽象类-模板设计模式

  1. public abstract void job();//抽象方法
  2. public void calculateTime() {//实现方法,调用job方法
  3. //得到开始的时间
  4. long start = System.currentTimeMillis();
  5. job(); //动态绑定机制
  6. //得的结束的时间
  7. long end = System.currentTimeMillis();
  8. System.out.println("任务执行时间 " + (end - start));
  9. }

}

  1. <a name="NAG2B"></a>
  2. ## AA
  3. ```java
  4. package test;
  5. public class AA extends Template {
  6. //计算任务
  7. //1+....+ 800000
  8. @Override
  9. public void job() { //实现Template的抽象方法job
  10. long num = 0;
  11. for (long i = 1; i <= 800000; i++) {
  12. num += i;
  13. }
  14. }
  15. }

BB

  1. package test;
  2. public class BB extends Template{
  3. @Override
  4. public void job() {//这里也去,重写了Template的job方法
  5. long num = 0;
  6. for (long i = 1; i <= 80000; i++) {
  7. num *= i;
  8. }
  9. }
  10. }

Main

  1. package test;
  2. public class Main {
  3. public static void main(String[] args) {
  4. AA aa = new AA();
  5. aa.calculateTime();
  6. BB bb = new BB();
  7. bb.calculateTime();
  8. }
  9. }

image.png