1

JavaScript では、次のように記述できます。

myobject.doSomething = function() {
    // stuff..
}

では、この Java の @Override-thing を使用して同じことを達成するにはどうすればよいでしょうか?

4

3 に答える 3

4

は関数型言語ではないため、単一のobjectinのメソッドをオーバーライドすることはできません。ただし、メソッドを宣言するサブクラスでメソッドをオーバーライドできます。JavaJavaclass

匿名クラスの宣言:

new MyClass() {
    @Override void myMethod() {
        ....
    }
}
于 2013-07-20T20:51:12.683 に答える
2

このようなことを意味しますか?

Main.java

private class SuperClass
{
    public void myMethod()
    {
        System.out.println("Test!");
    }
}

private class ChildClass extends SuperClass
{
    @Override
    public void myMethod()
    {
        System.out.println("Testtest!");
    }
}

public class Main
{
    public static void main(String[] args)
    {
        SuperClass superInstance = new SuperClass();
        ChildClass childInstance = new ChildClass();

        superInstance.myMethod();
        childInstance.myMethod();
    }
}
于 2013-07-20T20:50:53.493 に答える
0

これは、匿名クラスを使用してオブジェクトを作成するときに実行できます。基本的に、1 つのオブジェクトのみのサブクラスを作成します。例:

Label label = new Label() {
    @Override
    public void setText(String text) {
        super.setText(text);
        System.out.println("Text has been set to " + text);
    }
};

label.setText("Test");
于 2013-07-20T21:56:44.327 に答える