privateprotected正しいことを行うコードを簡単に記述できるようにするために存在します。お気づきのように、それらは壊れないわけではありません。必要に応じてバイパスすることを妨げるものは何もありません。これは、積極的にしようとすることからではなく、間違ったことを誤って行うことから保護することを目的としているためです。
リフレクションでそれらをバイパスできるということは、そうすべきだという意味ではありません。「壊れたら保証無効」ステッカーのようなものprivateと考えることができます。protectedそれらを無視して自分で直接いじると、オブジェクト/クラスが正しく動作しない可能性があります。 内部をいじるのはあなた自身の責任なので、その時点で .
さて、タイトルの質問については...protectedサブクラス専用のインターフェイスを宣言するために使用します。あなたは基本的に、彼らがそのものを直接使用するつもりであると宣言しますが、privateそうではないと言います。彼らがそれを無視するかどうかは彼ら次第ですが、もしそうなら、彼らを台無しにしてください. あなたは彼らに警告しようとしました。