在 JavaScript 中,我可以写:
myobject.doSomething = function() {
// stuff..
}
那么如何使用 Java 的 @Override-thing 来实现相同的效果呢?
在 JavaScript 中,我可以写:
myobject.doSomething = function() {
// stuff..
}
那么如何使用 Java 的 @Override-thing 来实现相同的效果呢?
您不能覆盖单输入的方法,object
因为Java
它Java
不是函数式语言。但是,您可以在class
声明您的方法的子类中覆盖该方法。
声明一个匿名类:
new MyClass() {
@Override void myMethod() {
....
}
}
你的意思是这样的吗?
主.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();
}
}
您可以在使用匿名类创建对象时执行此操作;基本上你只为一个对象创建一个子类。例子:
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");