クラスとインターフェイスは両方とも、オブジェクトの外観とオブジェクトの動作を定義します。 両方の構造をよく勉強して理解すると、プログラミングに取り組むのが容易になります。
これらは、オブジェクト指向プログラミング言語の XNUMX つの基本構造です。 また、理解を深めることでコーディングの品質と開発者のエクスペリエンスが向上します。
主要な取り組み
- クラスはオブジェクトの実装の詳細を定義しますが、インターフェイスはオブジェクトが実装する必要があるメソッドのみを指定します。
- クラスは複数のインターフェイスから継承できますが、親クラスは XNUMX つだけです。
- インターフェイスはコードの再利用性と抽象化を重視し、クラスは具体的な実装に重点を置いています。
クラス vs インターフェース
クラスは多重継承をサポートしていませんが、継承によってサポートされています。 クラスを宣言するには「Class」というキーワードを使用しますが、インターフェースを宣言するには「interface」というキーワードを使用します。 クラスはインスタンス化できますが、インターフェイスはインスタンス化できません。 クラスには講師が含まれますが、インターフェイスには講師が含まれません。

クラスは、オブジェクトが作成されるプログラムの基本構造です。 クラス自体は、一緒にパックされたバンドルの同一グループを含む特定のパッケージに属しています。
クラスの宣言には、キーワード、修飾子、およびクラス名が含まれます。
クラスは、さらに次の XNUMX つのカテゴリに分類できます。
私。 組み込みクラス
ii. ユーザー定義クラス
インターフェースの考え方は、一度に複数のクラスを実装するために導入されました。
プログラムのメソッド宣言が含まれます。 インターフェイスには抽象メソッドだけでなく静的メソッドも含めることができます。
デフォルトでは、常に public として宣言されます。
比較表
比較のパラメータ | CLASS | インタフェース |
---|---|---|
定義 | クラスは基本的に、オブジェクトの動作を記述および定義します | インターフェイスには基本的に、クラスによって定義された属性と動作が含まれます |
キーワード | キーワード「class」は、クラスを宣言するために使用されます | キーワード「interface」は、インターフェイスを宣言するために使用されます |
メソッド | クラスは、抽象メソッドと具象メソッドの両方を持つことができます。 これは、メソッドが本体を持つことができることを意味します | インターフェイスは抽象メソッドのみを持つことができます。 これは、メソッドが本体を持つことができないことを意味します |
アクセス指定子 | クラスのメンバーは、public、protected、または default のいずれかです。 | デフォルトでは、インターフェイスのすべてのメンバーはパブリックです |
継承 | クラスは多重継承をサポートしていません。 キーワード extends を使用して別のクラスを継承します | インターフェイスは複数の継承をサポートします。 ただし、インターフェイスのみを継承できます |
クラスとは何ですか?
クラスは、オブジェクトの作成元となる青写真または計画です。 類似した性質を持つオブジェクトのグループです。 これは論理的なエンティティであり、物理的なエンティティではありません。 クラス名は通常、大文字で始まります。
これはオブジェクト指向プログラミングの基本概念です。 オブジェクトの動作を決定します。 任意の数のメソッドを持つことができ、その値にアクセスできます。
クラスには、次のタイプの変数を含めることができます。
ローカル変数、インスタンス変数、およびクラス変数。
クラスの構文は次のとおりです。
クラス {
フィールド;
方法;
}
クラスの下にオブジェクトを作成するには、「new」と呼ばれるキーワードを使用する必要があります。 コンストラクタコンストラクタはクラスと同じ名前を持ちます。その機能はメソッドの機能に似ています。
たとえば、クラス名が Program の場合、コンストラクターは Program() です。 クラスのメンバーにアクセスするには、クラスとともにオブジェクトの名前を使用する必要があります。
インターフェースとは?
インターフェイスは、同様のメソッドのグループとして定義されますが、本体は空です。
インターフェイスを実装すると、クラスがより適切になります。 これにより、クラスの行動がより形式的なものになります。 これは、クラスを外部の世界に接続するコンパイラによって強制される規約です。
クラスが正常にコンパイルされる前に、インターフェイスによって定義されたメソッドがソース コードに表示される必要があります。 クラスをコンパイルするには、先頭に public キーワードを追加する必要があります。 プライベート変数とメソッドは存在できません。
抽象メソッドと静的定数で構成されます。インターフェースにはメソッド本体を含めることはできません。プログラム内で多重継承を実現するために使用されます。
インターフェイスには、デフォルト メソッドと静的メソッドを導入できます。 また、インターフェイスにプライベート メソッドを含めることもできます。 抽象化を実現するために使用されます。
クラスとインターフェースの主な違い
- クラスでは、class という名前のキーワードを使用して宣言します。 インターフェイスでは、interface という名前のキーワードを使用して宣言します。
- クラスのメンバーはパブリックである必要はありません。 パブリック、プライベート、および保護することができます。 対照的に、インターフェイスのメンバーはデフォルトでパブリックです。
- クラスはメソッド本体を持つことができます。 具体的なメソッドが含まれています。 インターフェイスには、本体を持つメソッドを含めることはできません。 それらには抽象メソッドが含まれています。
- クラスは XNUMX つのクラスのみを拡張できますが、同じ数のインターフェイスが必要です。 インターフェイスはインターフェイス自体を実装できませんが、任意の数のクラスを拡張することができます。 これは、複数クラスの実装の利点でもあります。
- プログラム内のクラスにはコンストラクターがある場合があります。 これらはプログラム内のコーディング構造のブロックであり、メソッドとよく似ています。 インターフェイスにはコンストラクターがありません。