A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

abstract class GetTime
{
        public final void getTime1()
        {
                long star = System.currentTimeMillis();

                chengxu();

                long end  = System.currentTimeMillis();

               
                System.out.println("毫秒:" +(end - star));
        }

        public abstract void chengxu();       
}
class Program extends GetTime
{
        public void chengxu()
        {
                for (int x=0;x<1000 ;x++ )
                {
                        System.out.print("x");
                }
        }
}                                               


class  Dome1
{
        public static void main(String[] args)
        {
                Program gt = new Program();
                gt.chengxu();
        }
}

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 淡定

查看全部评分

15 个回复

倒序浏览
这段代码是计算某一个程序运行时间的代码,程序能运行,但是运行结果不会打印出程序运行的结果,我就郁闷了,新手就是难
回复 使用道具 举报
  1. abstract class GetTime
  2. {
  3.         public final void getTime1()
  4.         {
  5.                 long star = System.currentTimeMillis();
  6.                 chengxu();
  7.                 long end = System.currentTimeMillis();
  8.                 System.out.println("毫秒:" + (end - star));
  9.         }
  10.         public abstract void chengxu();
  11. }
  12. class Program extends GetTime
  13. {
  14.         public void chengxu()
  15.         {
  16.                 for (int x = 0; x < 1000; x++)
  17.                 {
  18.                         System.out.print("x");
  19.                 }
  20.         }
  21. }
  22. class Game6
  23. {
  24.         public static void main(String[] args)
  25.         {
  26.                 Program gt = new Program();
  27.                 //gt.chengxu(); //方法调用错误. 这只是打印方法.
  28.                 gt.getTime1(); //要时间得调用这个方法, 这是你自己写的.
  29.         }
  30. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
楼上正解
回复 使用道具 举报
我觉得二楼的也有问题啊。
1、你方法既然是final的,子类继承不到。
2、你在getime里调用promgram、就算运行也要运行gettime。
个人意见。
回复 使用道具 举报
抽象类就不要定义final方法了
回复 使用道具 举报
qq8921310 发表于 2014-10-15 07:57
我觉得二楼的也有问题啊。
1、你方法既然是final的,子类继承不到。
2、你在getime里调用promgram、就算运 ...

用final就是不需要子类继承这个方法,因为这个方法的功能是计算某一个程序的运行时间,子类需要继承覆盖的是我们所输入想要计算运行时间的程序
回复 使用道具 举报
Nullifier 发表于 2014-10-15 08:43
抽象类就不要定义final方法了

用final就是不需要子类继承这个方法,因为这个方法的功能是计算某一个程序的运行时间,如果被继承修改了这个方法,这段代码就没有意义了。子类需要继承覆盖的是我们所输入想要计算运行时间的程序
回复 使用道具 举报

嗯嗯,正解,感谢,我还要多加练习,我还不熟练,实际上是很简单的错误,
回复 使用道具 举报
i19920412 发表于 2014-10-15 09:08
用final就是不需要子类继承这个方法,因为这个方法的功能是计算某一个程序的运行时间,如果被继承修改了 ...

额 final修饰的方法能被继承 但是不能重写
回复 使用道具 举报
Nullifier 发表于 2014-10-15 09:19
额 final修饰的方法能被继承 但是不能重写

我所说的不需要子类继承就是重写的意思····:L 本人不专业,不好意思哈。
回复 使用道具 举报
i19920412 发表于 2014-10-15 09:21
我所说的不需要子类继承就是重写的意思···· 本人不专业,不好意思哈。 ...

哦哦,没事我也是百度的,刚开始我也以为final修饰的方法不能继承了,又掌握了个知识
回复 使用道具 举报
兄弟,你在main函数里面调用gt.chengxu只是调用了循环,没调用getTime方法啊,最后gt.chengxu()改成gt.getTime1()就ok了
回复 使用道具 举报
qq8921310 发表于 2014-10-15 07:57
我觉得二楼的也有问题啊。
1、你方法既然是final的,子类继承不到。
2、你在getime里调用promgram、就算运 ...

方法是final子类是可以继承到的,只不过不能重写。
嗯,应该是这样的。
回复 使用道具 举报
mmppp 中级黑马 2014-11-26 17:11:30
15#
朋友 ,你在主函数里面调用的是那个类里面的 chengxu()  方法额。 不会得到你想要的结果的啊。你并没有调用getTime()方法啊
回复 使用道具 举报
这个程序虽然加final,但没有用到重写吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马