Java には、、、、package-private (デフォルト)、および のpublic4つのアクセス指定子があります。これはよく知られており、私にとっては問題ではありません。protectedprivate
のネーミングについて質問ですprotected。ここの表に示されているように、フィールドに package-private のデフォルト アクセス指定子を指定すると、パッケージ外のサブクラスがそのフィールドを使用できなくなりますが、キーワードを適用しprotectedても実際には保護されません。任意のパッケージ。
では、なぜprotected物事を保護しないのでしょうか。修飾子がまったくないよりも制限が少ないのはなぜですか?