項目のアクセス修飾子は、他のコードへの項目の可視性 (アクセス性) を制御します。たとえば、public メソッドはどこからでも呼び出すことができますが、private メソッドは、同じ型内の他のメソッドからのみ呼び出すことができます。
その他の情報
デフォルトでは、PRIVATE のフィールドを除き、すべての型およびメンバーは PUBLIC になります。
修飾子は、項目の可視性に次のように影響を与えます。
修飾子: |
項目が表示される状況: |
PUBLIC |
常時 |
PRIVATE |
呼び出し型がターゲット型と同じ場合 |
PROTECTED |
呼び出し型がターゲット型を継承する場合 |
INTERNAL |
呼び出し型がターゲット型と同じアセンブリ内にある場合 (.NET)、または呼び出し型がターゲット型と同じネームスペース内にある場合 (JVM) |
PROTECTED INTERNAL または INTERNAL PROTECTED |
呼び出し型がターゲット型から派生する場合、または呼び出し型がターゲット型と同じアセンブリ内にある場合 |
- PUBLIC
- 該当項目が任意のコードからアクセスできることを示します。
- PRIVATE
- 該当項目が、包含型内からのみアクセスできることを示します。
- PROTECTED
- 該当項目が、包含型内からのみ、または包含型を継承するサブタイプからアクセスできることを示します。PROTECTED は抽象メンバーで指定できません。PROTECTED は、継承ツリー内にアクセスを制限します。たとえば、スーパークラス内の保護対象フィールドには任意のサブクラスからアクセスできますが、継承ツリー外のクラスからはアクセスできません。
- INTERNAL
- 該当項目が、現在のコンパイル単位内からのみアクセスできることを示します。
- PROTECTED INTERNAL または INTERNAL PROTECTED
- 該当項目が、包含型内、包含型を継承するサブタイプ、または現在のコンパイル単位内からのみアクセスできることを示します。