覆盖抽象方法TimerTask.Run()

时间:2013-03-27 09:07:20

标签: java override abstract-class

我在覆盖从TimerTask类中运行的方法时遇到问题。

这是我的代码:

public class PGameCore 
{

    Toolkit toolKit;
    Timer   timer;

    public PGameCore(int clockIntervalInSeconds)
    {
        timer = new Timer();
        timer.schedule(new CoreTimer(), 1000 * clockIntervalInSeconds);
    }

    class CoreTimer extends TimerTask
    {
            public void Run()
            {
                System.out.println("BEEEP :)");
                toolKit.beep();
            }
    }

}

问题在于:

class CoreTimer extends TimerTask

我正在使用Netbeans。它说: “PGameCore.CoreTimer不是抽象的,并且不会覆盖TimerTask中的抽象方法run()。”

3 个答案:

答案 0 :(得分:6)

它说:“PGameCore.CoreTimer不是抽象的,不会覆盖TimerTask中的抽象方法run()。”

您的方法名称为Run,而应为run

答案 1 :(得分:2)

运行,而不是运行 - Java区分大小写。

答案 2 :(得分:0)

使用eclipse或netbean IDE。它将解决许多编译时问题。

在上述情况下,您应该使用run方法。这是区分大小写的。您使用了Run,其中R是大写,这是不正确的方法。

养成避免此类错误的习惯。在编写方法名称时使用 Camel 大小写,并在编写类名时使用 Pascal 大小写。