问题描述
|
这个问题已经在这里有了答案:
解决方法
请参阅:为什么是super.super.method(); Java中不允许使用?
, @tgamblin是正确的,但这是一种解决方法:
class A{
public void some(){ sharedCode() }
public final void someFromSuper(){ sharedCode() }
private void sharedCode() { //code in A.some() }
}
class B extends A{
@Override
public void some(){}
}
class C extends B{
@Override
public void some(){
//I want to call A.some();
someFromSuper();
}
}
在A中创建最终版本(不可覆盖)的方法的第二个版本,然后从C调用它。
这实际上是一个糟糕的设计,但有时需要在JDK本身内部使用。
问候,
斯特凡