大まかに言えば、インターフェイスに関する私の知識は次のとおりです。
- メソッドを宣言しますが、実装しません
- インターフェイスを実装するすべてのクラスは、宣言されたすべてのメソッドを実装する必要があります
私には、これはすぐに 2 つの大きな問題を明らかにします。
実装するクラスはすべてのメソッドを実装する必要があるため、これは事実上、Interface は一度使用すると変更できないことを意味します。インターフェイスでメソッドを追加または削除すると、それを使用するすべてのクラスが変更されます。答えはおそらくまさにそれです。しかし、私たちの設計がそれほど安定していることをどのように保証できるのでしょうか?
Interface を実装するクラスが実際にその実装で同じロジックを使用するとします。これはコードの繰り返しであり、保守が困難になります。それが基本クラスと継承のポイントではないでしょうか。
私はそれをよく理解していると思ったので、この考えにたどり着きました。私は、インターフェイスをクラスへの「ボルトオン」または「プラグイン」として考え、いくつかの追加機能を提供します。これにより、機能はそのタイプのクラスに関連付けられません。たとえば、インターフェイスは表面積を計算するメソッドを定義する可能性があります。しかし、「形状」や「建物」だけでなく、多くのものには表面積があるため、表面積を計算するために「ボルトオン」(インターフェース) を作成することは合理的と思われますが、そのインターフェースのすべての実装が同じだから、どこにメリットがあるの?これは公正なコメントですか?私は彼らが大きな利益をもたらすと確信していますが、私はまだそれを見ていません.