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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ぺsimon☆ 中级黑马   /  2013-4-15 15:39  /  1982 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ぺsimon☆ 于 2013-4-15 20:33 编辑

程序:
/**
需求:获取一段程序运行的时间
原理:获取程序的开始和结束的时间并相减即可

定义功能的时候,功能的一部分是确定的,有一部分是不确定的,但是确定那部分代码

要用到不确定部分的代码的时候,把不确定那部分定义为抽象方法
*/

abstract class GetTime
{
        private long start;
        private long end;

        public final void getTime()
        {
        start=System.currentTimeMillis();
        runcode();
        end=System.currentTimeMillis();
        
        System.out.print("毫秒"+(end-start));
        }

        public abstract void runcode();
        
        
}

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

class test
{
        public static void main(String[] args)
        {
        new SubTime().getTime();
        }
}

出错显示:
E:\Java\jdk1.6.0_23\experience_heima\07>javac test.java
test.java:27: SubTime 不是抽象的,并且未覆盖 GetTime 中的抽象方法 runcode()
class SubTime extends GetTime

我不是已经覆盖了父类的抽象方法了吗,为什么还说没有覆盖呢?到底是那里写错了,谢谢各位兄弟了

点评

建议楼主在适当的地方加上注释,你也会发现自己的问题的,鼓励鼓励,希望以后能做得更好  发表于 2013-4-15 20:02

评分

参与人数 1技术分 +2 收起 理由
黄玉昆 + 2 鼓励鼓励

查看全部评分

10 个回复

倒序浏览
哥们。你覆盖方法的时候  你打错函数了。
代码如下:
class SubTime extends GetTime
{
        public void runcode()
        {
                for(int x=0;x<1000;x++)        
               {
                System.out.print(x);
                }
        }
        
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
复写的时候把 runcode() 写成了 runcod(),
回复 使用道具 举报
我就是来看看!
回复 使用道具 举报
殇_心。 发表于 2013-4-15 15:48
哥们。你覆盖方法的时候  你打错函数了。
代码如下:
class SubTime extends GetTime

真是太感谢了,按着视频我还以为没写错了,找了好久
回复 使用道具 举报
*/

abstract class GetTime
{
        private long start;
        private long end;

        public final void getTime()
        {
        start=System.currentTimeMillis();
        runcode();
        end=System.currentTimeMillis();
        
        System.out.print("毫秒"+(end-start));
        }

        public abstract void runcode();
        
        
}

class SubTime extends GetTime
{
        public void runcode()//你写是runcod
        {
        for(int x=0;x<1000;x++)        
        {
        System.out.print(x);
        }
        }
        
}

class test
{
        public static void main(String[] args)
        {
        new SubTime().getTime();
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
Alan 中级黑马 2013-4-15 18:48:31
7#
你没有复写   复写名错误
回复 使用道具 举报
黄玉昆 黑马帝 2013-4-15 20:02:29
8#
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
abstract class GetTime
{
        private long start;
        private long end;

        public final void getTime()
        {
        start=System.currentTimeMillis();
        runcode();
        end=System.currentTimeMillis();
        
        System.out.print("毫秒"+(end-start));
        }

        public abstract void runcode();                        //这里写错了。runcode
        
        
}

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

class test
{
        public static void main(String[] args)
        {
        new SubTime().getTime();
        }
}
回复 使用道具 举报
谢谢兄弟啦呵呵
回复 使用道具 举报
{:soso_e127:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马