- /*
- 在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,
- 而确定部分在使用不确定部分,这时将不确定部分暴露出去,由该类的子类完成。
- 比如:在类中要定义一个功能获取一段程序(该段程序不确定)运行的时间
- */
- abstract class Demo
- {
- public long getTime()
- {
- long start = System.currentTimeMillis();//获取代码运行前时刻
- runCode(); //要测试的代码不确定,定义runCode()方法,
- //子类只要继承Demo类并复写runCode方法,将要测试的代码放该方法体中。
- long end = System.currentTimeMillis();//获取代码运行完时刻
- return (end-start);
- }
- public abstract void runCode();//将runCode方法暴露出去
- }
- class SubDemo extends Demo
- {
- public void runCode()
- {
- for (int i=0;i<5000 ;i++ )
- {
- System.out.print(i);
- }
- }
- }
- class ModelDemo
- {
- public static void main(String[] args)
- {
- SubDemo sd = new SubDemo();
- long time = sd.getTime();
- System.out.println("time="+time+"毫秒");
- }
-
- }
复制代码 |