0

protected他のクラスから完全にアクセスできるいくつかのメンバーを持つクラスを作成します。

class MyClass {
    protected String name;
}

私の意見では、これはコンパイルされるべきではありません:

MyClass mc = new MyClass();
mc.name = "foo";

しかし、それはうまくいきます。member を作成すると、private期待どおりに動作します。これはどうやってできるの?

いくつかのメモがありますが、違いはないと思います。

  • は のmc中にありHashMap
  • 内部でアクセスしますActivity
4

2 に答える 2

6

protectedメンバーは、サブクラス (同じまたは異なるパッケージ内) および同じパッケージ内のすべてのクラスでアクセスできます。そのコードを別のパッケージに移動すると、期待どおりの動作が得られます。

アクセス制御を参照してください。

于 2013-10-07T20:05:35.553 に答える