インターフェースを実装するタイミングとスーパークラスを拡張するタイミングはいつですか? 質問する

インターフェースを実装するタイミングとスーパークラスを拡張するタイミングはいつですか? 質問する

私は Java のインターフェースとクラス継承についてたくさん読んできました。どちらも実行する方法を知っており、どちらもよく理解していると思います。しかし、この 2 つを実際に比較して、いつ、なぜどちらか一方を使用する必要があるのか​​を説明している人はいないようです。インターフェースを実装する方がスーパークラスを拡張するよりも優れたシステムになる場合があまりありません。

では、いつインターフェースを実装し、いつスーパークラスを拡張するのでしょうか?

ベストアンサー1

使用インターフェース定義したい場合契約つまり、XはYを受け取り、Zを返す必要があります。どうやってコードがそれを実行します。クラスは実装できます複数インターフェース。

使用抽象クラス定義したい場合デフォルトの動作非抽象メソッドで、エンドユーザーが何度も書き直すことなく再利用できるように。クラスは唯一他のクラス。のみ抽象メソッドはインターフェースと同じくらいよく定義できます。抽象メソッドのない抽象クラスは、テンプレートメソッドパターン(参照この答え実際の例についてはこちらをご覧ください。

抽象クラスは、エンドユーザーにデフォルトの動作を定義する自由を与えたいときに、インターフェースを完全に実装できます。

おすすめ記事