これは難しいものです。私はフォーラムでこの質問を読みましたが、誰も満足のいく答えを思い付くことができませんでした。
C ++のバックグラウンドから来て、Javaはインターフェースを介して多重継承を実現すると言われています。継承の主な目的の1つは、たまたま「コードの再利用」です。
私は何年にもわたってインターフェースの使用法を理解しようとしてきました。インターフェイスがコードの再利用を実現するかどうかはわかりません。はいの場合、どのように?それを実証するための良いコード例を教えてください。
私はすでにインターフェースが次のとおりであることを理解しています:
- 契約を指定するために使用されます。
- クラスが果たす追加の役割、動作を指定するために使用されます。
- 「ポリモーフィズム」を実現するために使用されます(例:addKeyListener(KeyListener e)のようなメソッドは、KeyListenerの継承階層にない場合でも、KeyListenerを引数として実装するクラスを受け入れることができます(KeyListener型になります)。
しかし、コードを再利用する場合、具体的なメソッドのコードを自分で追加する必要がある場合、どのように役立ちますか....インターフェイスの実装を省略した方がよいでしょう。
では、インターフェイスはどのようにしてコードの再利用性を実現しますか(もしそうなら)?