私の質問はプロジェクトから来ています。だから私は少し無関係の詳細を抽象化してみましょう。保護されたメソッドをオーバーライドし、スーパークラスから呼び出すようにしてください
私は、2つの保護された静的メソッドfoo()とbar()を持つJAVA public class Aを持っています。メソッドfoo()は、本体のbar()を呼び出します。
public class A{
protected static foo(){
...
bar()
...
}
protected static bar(){print("A.bar()");}
}
が今もBでA.を拡張するクラスBを持っている、私が最後)(
class B extends A{
@Overrides
static protected bar(){ print("A.bar() extended");
}
をバーをオーバーライド、IはBにクラスからのfoo()を呼び出す
class B extends A{
...
public static main(){foo()}
}
2点を理解できません 1.コンパイラ(Eclipse)が@Overrideアノテーションを削除するように要求します。どうして? 2.最後にmain()は "abar()"を出力します。つまり、解決されたbar()ターゲットはクラスAですが、bar()をオーバーライドし、Aのfoo ()。どうやってやるの?
あなたの意見は?
私に投票した人には、私はすでにその日の投票に達しています。 @ Guillaumeの似たような答えを投票してください(私がすでに行ったように)。 :) –
ねえ、ありがとう;-) –