可能性の重複:
Why is super.super.method(); not allowed in Java?のJava:スーパーを呼び出す方法()super()をオーバーライドされたメソッドに(祖父母法)
私は、彼らがお互いから継承する3つのクラスを持っています次の:私は次のメソッドを持つ各クラス内
A
↳
B
↳
C
を:
私はB
で
foo
を呼び出さずにクラス
A
から
foo
を呼び出したいクラス
C
インサイド
protected void foo() {
...
}
:
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();
}
EDIT
いくつかの文脈情報:
クラスBは、我々が使用する実際のクラスです。クラスCは単体テストクラスですが、いくつかの変更があります。 foo
メソッド内B
私たちが望まないものはいくつかありますので、C
の中で上書きします。しかし、A
のfoo
が便利で、呼び出す必要があります。
で
foo()
を呼び出しますBにsuper.foo()
を呼び出しますので、あなたは、このトピック のhttpを見てみましょう、クラスBにsuper.foo()
の呼び出しを追加することができます.com/questions/586363/why-is-super-super-method-not-in-java – Pr0gr4mm3r