プライベートは機能しないが、保護されていることは理解できますか?
私はそれが外界への「約束」であることを理解していますが、何かがインターフェースを実装している場合、そのメソッドは保護されたままになるため、同じ「約束」が引き続き保持されます。関数a、関数b、および保護された関数cがあると述べられているため、これを拡張/実装していない場合、関数cにアクセスできません。クラスを読むときと同じように機能するからです。
@AlphaMaleでは、インターフェースのポイントは何ですか?クラスの「レシピ」を作成するために使用されますよね?したがって、実際にコードで使用する場合は、メソッドを実装して強制するだけです。これは、コードが機能するためにメソッドが必要であり、特定のクラスに強制したくない場合に便利です。
メーラーを作成する必要があるとしますが、メールが必要な主要なプロセスを実行する必要がありますが、メーラーはこれらのメールを作成するさまざまな方法を使用します。メッセージ(任意のタイプ)と電子メールアドレスを受け取る基本送信関数が必要ですが、クラスはオープン環境にあるため、この送信関数をパブリックのままにしておくのは危険であるため、保護されたものとして必要です方法。2 つのプロセスには複数のメーラーがありますが、各プロセスはメソッドを構築する同じ方法を共有しているため、2 つの抽象クラスがありますが、インターフェイスが制限されているため、この保護された送信関数を含む 3 つ目の抽象クラスを宣言する必要があります。拡張することもできます。それ以外の場合は、同じ保護された送信機能が得られます。新しい開発者がまったく新しいプロセスで作業し、インターフェースを見た場合、送信機能が強制されることはありません。インターフェースで protected を宣言することが可能であると言った場合、何かがインターフェースであるかどうかを確認すると、クラスと同じように機能しますが、保護された関数にアクセスすることはできません。
インターフェイスだけがこれらの値を認識し、インターフェイスは何もできないため、これは無意味になるため、プライベートは理にかなっています。