使用方法模板中的抽象方法实现父类对子类的回调。
 1 package com.javatest20170222;
 2 //定义一个获取时间差的方法体
 3 abstract  class AbstractOprationTimeTemplate {
 4     //使用法final修饰,定义一个不能被修改的方法模板
 5     final public long getTotalTime(){
 6         long begin = System.currentTimeMillis();
 7         doWork();//调用子类实际的方法
 8         long end = System.currentTimeMillis();
 9         long time = end - begin;
10         return time;
11     }
12     //定义具体操作的抽象方法,供子类实现,并使用protected修饰仅供子类实现,不允许外界访问
13     protected abstract  void doWork();    
14 }
15 class StringOpration extends AbstractOprationTimeTemplate{
16     protected  void doWork(){
17         String str = "";
18         for(int i =1;i<10000;i++){
19             str+=i;    
20         }
21     }
22 }
23 class IntOpration extends AbstractOprationTimeTemplate{
24 
25     @Override
26     protected void doWork() {
27         // TODO Auto-generated method stub
28         int sum = 0;
29         for(int i=1;i<100000;i++){
30             sum+=i;        
31         }
32     }
33 }
34 public class Time {
35     public static void main(String[] args) {
36         System.out.println(new IntOpration().getTotalTime());
37         System.out.println(new StringOpration().getTotalTime());
38     }
39 }    

 

posted on 2017-02-22 22:34  IT_xiaocai  阅读(704)  评论(0)    收藏  举报