private > 指定なし > protected > public」の順に緩やかになります。
トップレベルのクラス(一番外側のクラス)に指定できるアクセス修飾子は「public」または「指定なし(package-private)」の2種類のみであり、トップレベルクラスを private や protected に指定することはできません(コンパイルエラー)。
また、メソッドをオーバーライドする際、子クラス側のメソッドのアクセス修飾子は「親クラスのアクセス修飾子と同等か、より緩やかな範囲」にしか設定できないという厳格なルールが存在します。例えば、親で protected なメソッドを子で private や指定なしに制限してオーバーライドすることはできません。
protected メンバにアクセスする場合、「子クラス自身のインスタンス(または子クラスの型)」経由でしかアクセスできません。親クラスの型の変数経由でアクセスしようとするとコンパイルエラーになります。
2. オーバーライド時のアクセス可視性の縮小禁止:親クラスが public のメソッドを、子クラスで void method()(指定なし)としてオーバーライドすると、可視性を狭めたためコンパイルエラーになります。
3. トップレベルクラスへのprivate付与:private class Test {} はコンパイルエラーになります。
ファクトチェック:1Z0-825-JPN(2026-08-01確認)。試験番号1Z0-825-JPN、試験時間90分、60問、合格ライン65%です。
この記事は公式出題範囲・チェックリストとの対応を編集部で確認した学習解説です。