黑马程序员技术交流社区

标题: 覆盖抽象类的时候,程序出错 [打印本页]

作者: ぺsimon☆    时间: 2013-4-15 15:39
标题: 覆盖抽象类的时候,程序出错
本帖最后由 ぺ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 15:48
哥们。你覆盖方法的时候  你打错函数了。
代码如下:
class SubTime extends GetTime
{
        public void runcode()
        {
                for(int x=0;x<1000;x++)        
               {
                System.out.print(x);
                }
        }
        
}
作者: hdsjsql    时间: 2013-4-15 15:57
复写的时候把 runcode() 写成了 runcod(),
作者: mvplee    时间: 2013-4-15 16:11
我就是来看看!
作者: ぺsimon☆    时间: 2013-4-15 16:18
殇_心。 发表于 2013-4-15 15:48
哥们。你覆盖方法的时候  你打错函数了。
代码如下:
class SubTime extends GetTime

真是太感谢了,按着视频我还以为没写错了,找了好久
作者: 。。。。。。    时间: 2013-4-15 16:19
*/

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();
        }
}
作者: Alan    时间: 2013-4-15 18:48
你没有复写   复写名错误
作者: 黄玉昆    时间: 2013-4-15 20:02
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
作者: 山西_李帅    时间: 2013-4-15 20:17
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();
        }
}
作者: ぺsimon☆    时间: 2013-4-15 20:32
谢谢兄弟啦呵呵
作者: 董维明    时间: 2013-4-15 20:55
{:soso_e127:}




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