次のように、互いに継承する3つのクラスがあります。
A
↳
B
↳
C
各クラス内には、次のメソッドがあります。
protected void foo() {
...
}
クラス内で、呼び出しずにクラスC
から呼び出したい:foo
A
foo
B
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
は便利で、呼び出す必要があります。