黑马程序员技术交流社区

标题: 模板方法模式里的一个问题 [打印本页]

作者: 彭璞    时间: 2012-11-28 01:11
标题: 模板方法模式里的一个问题
本帖最后由 彭璞 于 2012-11-28 15:54 编辑

abstract class GetTime{
            public final void getTime(){
                long start = System.currentTimeMillis();
          runCode();              
       long end = System.currentTimeMillis();
                System.out.println("毫秒:"+(end - start));
            }
            public abstract void runCode();
        }
        class SubTime extends GetTime{
            public void runCode(){
                for(int x=0;x<4000;x++){
                    System.out.print(" "+x);
                }
            }
        }
        public class Demo{  
            public static void main(String[] args){  
                SubTime gt = new SubTime();
                gt.getTime();
            }  
        }
作者: 彭璞    时间: 2012-11-28 01:13
点错了提交了还没问问题

上代码中runCode()没有被定义成静态的,为什么直接就可以调用
作者: 陈龙    时间: 2012-11-28 08:09
   
SubTime继承了public final void getTime()方法,覆写抽象方法runCode()

class SubTime extends GetTime{
            public void runCode(){
                for(int x=0;x<4000;x++){
                    System.out.print(" "+x);
                }
            }
        }


public class Demo{  
            public static void main(String[] args){  
                SubTime gt = new SubTime(); //在这你定义了一个对象,该对象调用public方法getTime();
                gt.getTime();
            }  
           
           public static void runCode1(){   //如果你是在这定义一个方法,要想被主方法调用,必须public static

           }
}




作者: ljhheima    时间: 2012-11-28 12:57
你并没用调用该函数,该函数为抽象,你只是将抽象方法实现了而已




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2