本帖最后由 Jiewin 于 2013-5-30 17:08 编辑
看到模板方法模式那里有个例子,第四行代码加了final后,有几个疑惑!
1、可以理解是禁止被子类继承吗?如果这样,我就能理解。
2、老师说的是禁止子类重写,但是子类中并没有用到GetTime()这个方法啊,怎么理解呢?
- abstract class GetTime
- {
- //禁止getTime()方法被子类继承,设置为final
- 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<5000 ;x++ )
- {
- System.out.print(x+" ");
- }
- }
- }
- class TimeDemo
- {
- public static void main(String[] args)
- {
- SubTime gt = new SubTime();
- gt.GetTime();
- }
- }
复制代码 |