在JavaScript中我可以写:
myobject.doSomething = function() {
// stuff..
}
那么我如何使用Java的Override-thing来实现同样的目标呢?
答案 0 :(得分:4)
您无法覆盖object
中单个Java
的方法,因为Java
不是函数式语言。但是,您可以在class
声明方法的子类中覆盖该方法。
new MyClass() {
@Override void myMethod() {
....
}
}
答案 1 :(得分: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();
}
}
答案 2 :(得分:0)
使用anonymous class创建对象时可以执行此操作;基本上你只为一个对象创建一个子类。例如:
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");