仮想関数について勉強しているときに、インターフェイス、プロトコル、抽象クラスという 3 つの用語に出くわしました 。
誰かがそれらの違いを説明できますか?
仮想関数について勉強しているときに、インターフェイス、プロトコル、抽象クラスという 3 つの用語に出くわしました 。
誰かがそれらの違いを説明できますか?
インターフェース: インターフェースは、抽象メソッドのコレクションです。クラスはインターフェイスを実装することで、インターフェイスの抽象メソッドを継承します。 抽象クラス: Java の抽象クラスは、1 つ以上の抽象メソッドを含むクラスです。これは、本体のない単純なメソッド宣言です。つまり、クラスまたはメソッドを実装する実行可能コードはありません。抽象メソッドはメソッドのプロトタイプのようなもので、メソッドの戻り値の型とパラメーター リストを宣言しますが、メソッドの実際の実装は提供しません。 注:プロトコルについてはわかりません
と の違いを説明できabstract class
ますinterface
。
1. interface : interface に本体が定義されていないメソッドのグループです。つまり、インターフェイスではメソッドを宣言するだけで、本体を定義することはできません。本体は派生クラスで定義する必要があります。
2. 抽象クラス: インターフェイスとクラスのハイブリッドです。一部のメソッドは本体で宣言され、一部のメソッドは抽象として宣言されます。抽象とは、インターフェイスと同様に、メソッドがクラスで宣言されているが、クラスで定義されていないことを意味します。しかし、抽象クラスでは、インターフェイスでは不可能なデフォルトの動作を持つメソッドを持つことができます。派生クラスでは、すべての抽象メソッドを定義するか、派生クラスで抽象を宣言する必要があります。