0

javaでの継承に関する質問...

class Base {
    private int val = 10;
}

class Derive extends Base{
    public void setVal(int value) {
        super.val = value;
    }
}

サブクラスのキーワードをprivate使用してスーパークラスのフィールドを変更できるのに、なぜスーパークラスのフィールドを宣言するために使用する必要があるのでしょうか。superprotected

4

3 に答える 3

4

あなたはそれをすることはできません。Derive指定したコードは、内部にネストされたクラスとして宣言されていない限り、コンパイルされませんBase(これは非常にまれなケースです)。

次のようなエラーが発生するはずです。

error: val has private access in Base
于 2012-06-16T07:41:32.617 に答える
0

superは、親コンストラクターを呼び出すために使用される参照変数です。

于 2014-06-03T17:23:20.787 に答える
0

そのクラスを継承している場合でも、クラスの外部でプライベートにアクセスすることはできないコードを確認してください。

于 2014-06-03T17:29:44.053 に答える