0

暗黙的に継承されたメソッド (子に継承された親の抽象最終メソッド) のアクセスの可視性は、子を介してアクセスされたときに常に同じですか?

暗黙の転送ルールとは何ですか?

class package0.Parent {ACCESS_MODIFIER final void f();}   
class package1.B extends A { /* Implicit f?*/} 
class package2.C extends B {/* Implicit f? */}

次に: 常にACCESS_MODIFIER転送されますか? もしそうなら、なぜケース1ですか?そして、ケース3はどうですか?

  • ケース 1: 親f()private可視性である場合、可視性は転送されず、B表示されません。
  • ケース 2: 親f()がの場合、 を使用している、または使用する予定のユーザーはpublic誰でも使用できると思います。BCf
  • ケース 3: 親f()がの場合、メソッドを保護されたものとして「公開」するprotectedと思います。つまり、それを見ることができます。BC
4

1 に答える 1

0

あなたの言い回しは半分不明確です。私があなたの質問を解釈している方法は次のとおりです。

class A{protected void f();}
class B extends A{/* Can see f. */}
class C extends B{/* Can see f? */}

もしそうなら、答えはイエスです:Cにアクセスできますf

于 2014-12-10T18:01:24.657 に答える