次のように、互いに継承する3つのクラスがあります。
A
↳
B
↳
C
各クラス内には、次のメソッドがあります。
protected void foo() {
...
}
クラス内で、呼び出しずにクラスCから呼び出したい:fooAfooB
protected void foo() {
// This doesn't work, I get the following compile time error:
// Constructor call must be the first statement in a constructor
super().super().foo();
}
いくつかのコンテキスト情報を編集
:
クラス B は、使用する実際のクラスです。クラス C は単体テスト クラスであり、いくつかの変更が加えられています。foo内部のメソッドBは、望ましくないことを行うため、内部でオーバーライドしますC。ただしfoo、クラス内Aは便利で、呼び出す必要があります。