アクセス修飾子

項目のアクセス修飾子は、他のコードへの項目の可視性 (アクセス性) を制御します。たとえば、public メソッドはどこからでも呼び出すことができますが、private メソッドは、同じ型内の他のメソッドからのみ呼び出すことができます。

access-modifier

その他の情報

デフォルトでは、PRIVATE のフィールドを除き、すべての型およびメンバーは PUBLIC になります。

修飾子は、項目の可視性に次のように影響を与えます。

修飾子: 項目が表示される状況:
PUBLIC 常時
PRIVATE 呼び出し型がターゲット型と同じ場合
PROTECTED 呼び出し型がターゲット型を継承する場合
INTERNAL 呼び出し型がターゲット型と同じアセンブリ内にある場合 (.NET)、または呼び出し型がターゲット型と同じネームスペース内にある場合 (JVM)
PROTECTED INTERNAL または INTERNAL PROTECTED 呼び出し型がターゲット型から派生する場合、または呼び出し型がターゲット型と同じアセンブリ内にある場合
PUBLIC
該当項目が任意のコードからアクセスできることを示します。
PRIVATE
該当項目が、包含型内からのみアクセスできることを示します。
PROTECTED
該当項目が、包含型内からのみ、または包含型を継承するサブタイプからアクセスできることを示します。PROTECTED は抽象メンバーで指定できません。PROTECTED は、継承ツリー内にアクセスを制御します。たとえば、スーパークラス内の保護対象フィールドには任意のサブクラスからアクセスできますが、継承ツリー外のクラスからはアクセスできません。
INTERNAL
該当項目が、現在のコンパイル単位内からのみアクセスできることを示します。
PROTECTED INTERNAL または INTERNAL PROTECTED
該当項目が、包含型内、包含型を継承するサブタイプ、または現在のコンパイル単位内からのみアクセスできることを示します。