![【Java基礎講座 #22】抽象クラス・インターフェース | ポリモーフィズムを理解しよう!](https://i.ytimg.com/vi/rh-IhjgqdO0/hqdefault.jpg)
コンテンツ
主な違い
抽象クラスとインターフェースの主な違いは、Javaインターフェースのプロシージャは本質的に抽象的であり、アプリケーションを持つことができないことです。大まかに言って、インターフェースは実際には契約であり、インターフェースについて話すとき、メソッドには本体がなく、単なるパターンであるということが当てはまります。基本的に抽象クラスは、使用するのに費用がかかるクラスです。抽象クラスとインターフェースはまったく異なる概念であり、これらは2つの異なるものですが、実装は非常によく似ています。
抽象クラスとは何ですか?
抽象クラスは、プログラマーによって完全に暗示されるわけではありません。抽象クラスには、1つ以上の抽象メソッドがあります。クラスのグループ化やランク付けをモデル化するのに役立ち、これが実行されている間、プログラマーは要件を見た後に何を構築する必要があるかを理解します。抽象クラスには一部が欠けているため、完全に信頼することはできません。この引数の背後にある主要なポイントは、抽象クラスは厳密にオブジェクト指向であるが、メソッドの見出しはあるが本体がないことです。抽象クラスについて話すとき、これらのクラスは互いに獲得または継承する傾向があるため、2つのクラス間に強いつながりがあります。
インターフェースとは?
インターフェースについて話すとき、逆に、インターフェース自体とインターフェースを暗示するクラスとの間の関係または通信は、抽象クラスほど強力ではありません。 Javaクラスは多くのインターフェースを実装できますが、単一の抽象クラスから継承できます。つまり、一度に多くの相互作用を暗示したい場合、インターフェイスがあなたのものであることを意味します。このシナリオ全体とは別に、APIをしばらく変更したくない場合でも、インターフェイスが最適なオプションです。インターフェースは、実際には2つの異なるオブジェクト間のコントラクトです。短くするために、インターフェイスは機能を中心に展開します。
主な違い
- 抽象クラスはオブジェクト指向であり、インターフェイスは機能指向です。
- APIをしばらく一定に保ちたい場合は、抽象クラスよりもインターフェイスを選択します。
- 複数のインターフェイスを暗示することにより、複数の継承を取得できます。抽象クラスでは、複数の継承を取得できません。
- 将来、作業にメソッドを追加する必要があるという雰囲気がある場合は、インターフェイスではなく抽象クラスが選択されます。
- 抽象クラスは共通の基本クラスアプリケーションを提供しますが、インターフェイスではそのようなことは起こりません。
- インターフェイスでは、実装するすべてのメソッドはパブリックですが、抽象クラスでは、いくつかの非パブリックメソッドを適用することもできます。
- コンストラクターはインターフェースにはありませんが、抽象クラスで発生します。
- 抽象クラスの完全なメンバーは静的ですが、インターフェイスではありません。