Java和跳过一个级别的超级
可能重复:Java和跳过一个级别的超级,java,Java,可能重复: 如果您有一个从另一个派生的类派生的类,我是否可以调用super.super方法而不是重写的方法 class A{ public void some(){} } class B extends A{ public void some(){} } class C extends B{ public void some(){I want to call A.some();} } 请参阅:@tgamblin是正确的,但这里有一个解决方法: class A
如果您有一个从另一个派生的类派生的类,我是否可以调用super.super方法而不是重写的方法
class A{
public void some(){}
}
class B extends A{
public void some(){}
}
class C extends B{
public void some(){I want to call A.some();}
}
请参阅:@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();
}
}
在中创建方法的第二个版本,该版本是最终版本(不可重写),并从C调用它
这实际上是一个糟糕的设计,但有时需要在JDK内部使用
问候,,
圣菲