JavaScript では、次のように記述できます。
myobject.doSomething = function() {
// stuff..
}
では、この Java の @Override-thing を使用して同じことを達成するにはどうすればよいでしょうか?
JavaScript では、次のように記述できます。
myobject.doSomething = function() {
// stuff..
}
では、この Java の @Override-thing を使用して同じことを達成するにはどうすればよいでしょうか?
は関数型言語ではないため、単一のobject
inのメソッドをオーバーライドすることはできません。ただし、メソッドを宣言するサブクラスでメソッドをオーバーライドできます。Java
Java
class
匿名クラスの宣言:
new MyClass() {
@Override void myMethod() {
....
}
}
このようなことを意味しますか?
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();
}
}
これは、匿名クラスを使用してオブジェクトを作成するときに実行できます。基本的に、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");