我希望能够确定一个基类方法是否被子类覆盖,因为在调用它之前需要进行昂贵的设置,并且我们系统中的大多数子类没有覆盖它。能否使用反射提供的方法句柄进行测试?或者还有其他方法可以测试类方法是否被覆盖?
例如:
例如:
class BaseClass {
void aMethod() { // don nothing }
protected boolean aMethodHasBeenOverridden() {
return( // determine if aMethod has been overridden by a subclass);
}
}
Base.class
进行比较可以解决此问题。 - Sergey Kalinichenkoclass Base
和class Derived extends Base
也很常见;而class Super
和class Sub
则较少见,可能是因为super
是一个关键字,而Sub
看起来有点奇怪。 - wchargin