0

Java で、別のパッケージの保護されたメンバーにアクセスするにはどうすればよいですか?

package p1
    class base      
        protected int x

package p2
    import p1.*
    class derived extends base
        int x

class subderived extends derived
     int x

mainから保護された仕様としてアクセスしsubderivedたいので、継承のみを使用できます。アクセスへの参照は使用できません。アクセスするには を使用できますが、 からはどのようにアクセスできますか?xp1.basebase xderived xsuper.xsubderivedbase.x

4

1 に答える 1

2

保護されたメンバーは、修飾子なしで直接派生クラスおよびサブ派生クラスからアクセスできます。

base.x = 123;

あなたは書ける

x = 123;

派生クラスのメソッド内にある限り、正常にコンパイルされます。ただし、これを機能させるには、派生クラス自体から同じ名前のメンバーを削除する必要があります。そうしないと、基本メンバーがhiddenになり、通常の構文の継承階層の複数のレベルからアクセスできなくなります。つまり、リフレクションを使用しません。

于 2013-03-24T19:35:10.360 に答える