のインターフェース Java 例を挙げて

インターフェースとは何か Java?

An のインターフェース Java プログラミング言語は、クラスの動作を指定するために使用される抽象型として定義されます。 Java インターフェースには静的定数と抽象メソッドが含まれます。クラスは複数のインターフェースを実装できます。 Javaインターフェースは、interface キーワードを使用して宣言されます。インターフェース内のすべてのメソッドは暗黙的に public かつ abstract です。

インターフェイスを宣言するための構文

クラスでインターフェイスを使用するには、クラス名の後にキーワード「implements」を追加し、その後インターフェイス名を続けます。

interface {
//methods
}

インターフェースの実装例

さて、インターフェースを理解しましょう Java 例:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

クリック こちら ビデオにアクセスできない場合

なぜインターフェースが必要なのでしょうか?

インターフェースの使用を理解する Java もっと良いのは、 Java インターフェースの例。クラス「メディアプレーヤー」には、CDプレーヤーとDVDプレーヤーの2つのサブクラスがあります。それぞれに固有のインターフェース実装があります。 Java 音楽を再生する方法。

インターフェースが必要な理由

別のクラス「コンボドライブ」はCDとDVDの両方を継承しています(下の画像を参照)。どちらの再生方法を継承すべきでしょうか?これは深刻な設計上の問題を引き起こす可能性があります。したがって、 Java 複数は許可されない 継承.

インターフェースが必要な理由

次に、Dog の別の例を見てみましょう。

クラス「dog」がクラス「animal」と「Pet」を継承するという要件があるとします(下の図を参照)。しかし、2つのクラスを継承することはできません。 Javaでは、どうしますか? 解決策はインターフェースです。

インターフェースが必要な理由

インターフェイスのルールブックには次のように書かれています。

  • A Java 実装インターフェースは100%抽象クラスであり、 抽象メソッド。
  • クラスは任意の数のインターフェイスを実装できます。

Dog クラスをクラス「Animal」に拡張し、インターフェースを「Pet」として実装できます。

インターフェースが必要な理由

Java インターフェースの例:

以下のインターフェースプログラムを理解しましょう Java:

ステップ1) 次のコードをエディターにコピーします。

interface Pet{
  public void test();
}
class Dog implements Pet{
   public void test(){
     System.out.println("Interface Method Implemented");
  }
   public static void main(String args[]){
     Pet p = new Dog();
     p.test();
  }
}

ステップ2) コードを保存し、コンパイルして実行します。 インターフェイスの出力を観察します。 Java プログラム.

クラスとインターフェースの違い

CLASS
インタフェース
クラスでは、変数をインスタンス化し、オブジェクトを作成できます。 インターフェイスでは、変数をインスタンス化してオブジェクトを作成することはできません。
クラスには具体的な(実装を含む)メソッドを含めることができます インターフェイスには具象(実装を含む)メソッドを含めることはできません
クラスで使用されるアクセス指定子は、private、protected、public です。 インターフェイスでは、Public という XNUMX つの指定子のみが使用されます。

インターフェイスと抽象クラスをいつ使用するか?

  • サブクラスのグループに対してテンプレートを定義する必要がある場合は、抽象クラスを使用します。
  • 他のクラスの継承ツリーに関係なく、他のクラスに対してロールを定義する必要がある場合は、インターフェイスを使用します。

インターフェースについて知っておくべき事実

  • A Java クラスは複数の Java インターフェース。クラスはインターフェースで宣言されたすべてのメソッドを実装する必要があります。
  • クラスはインターフェースで宣言されたすべての抽象メソッドをオーバーライドする必要があります
  • このインターフェイスを使用すると、オブジェクトが属するクラスに関係なく、オブジェクトにメッセージを送信できます。
  • クラスは、インターフェイスで宣言されたメソッドの機能を提供する必要があります。
  • インターフェイス内のすべてのメソッドは暗黙的にパブリックかつ抽象的です
  • インターフェイスをインスタンス化できません
  • インターフェース参照は、その実装クラスのオブジェクトを指すことができます。
  • インターフェイスは、XNUMX つまたは複数のインターフェイスから拡張できます。 クラスは XNUMX つのクラスのみを拡張できますが、任意の数のインターフェイスを実装できます
  • インターフェイスは別のインターフェイスを実装できません。 必要に応じて、別のインターフェイスを拡張する必要があります。
  • 別のインターフェイス内で宣言されたインターフェイスは、ネストされたインターフェイスと呼ばれます
  • 宣言時に、インターフェース変数を初期化する必要があります。そうしないと、コンパイラはエラーをスローします。
  • このクラスは、同じ名前で戻り値の型が異なるメソッドを持つ XNUMX つのインターフェイスを Java で実装できません。

概要

  • インターフェイスを実装するクラスは、インターフェイスで宣言されたメソッドの機能を提供する必要があります。
  • インターフェイス内のすべてのメソッドは暗黙的にパブリックかつ抽象的です
  • インターフェイスをインスタンス化できません
  • インターフェース参照は、その実装クラスのオブジェクトを指すことができます。
  • インターフェイスは、XNUMX つまたは複数のインターフェイスから拡張できます。 クラスは XNUMX つのクラスのみを拡張できますが、任意の数のインターフェイスを実装できます。