在 Python 中,类方法可以被继承。例如
>>> class A:
... @classmethod
... def main(cls):
... return cls()
...
>>> class B(A): pass
...
>>> b=B.main()
>>> b
<__main__.B instance at 0x00A6FA58>
你会如何在 Java 中做同样的事情?我目前有:
public class A{
public void show(){
System.out.println("A");
}
public void run(){
show();
}
public static void main( String[] arg ) {
new A().run();
}
}
public class B extends A{
@Override
public void show(){
System.out.println("B");
}
}
我想调用 B.main() 并让它打印“B”,但显然它会打印“A”,因为“new A()”是硬编码的。
您将如何更改“new A()”,以便将其参数化为使用它在调用时所在的类,而不是硬编码的类 A?