Javaのインターフェースとは:例を使用してインターフェースを実装する方法
Java のインターフェースとは
Java のインターフェース プログラミング言語は、クラスの動作を指定するために使用される抽象型として定義されます。 Java インターフェースには、静的定数と抽象メソッドが含まれています。クラスは複数のインターフェースを実装できます。 Java では、インターフェイスは interface キーワードを使用して宣言されます。インターフェイス内のすべてのメソッドは、暗黙的に公開され、抽象化されています。
ここで、Java でインターフェースを使用する方法を学びます。
インターフェース宣言の構文
クラスでインターフェースを使用するには、クラス名の後にキーワード「implements」を追加し、その後にインターフェース名を続けます。
interface { //methods }
インターフェースの実装例
それでは、Java のインターフェースを例で理解しましょう:
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
ビデオにアクセスできない場合は、ここをクリックしてください
インターフェースが必要な理由
Java でのインターフェースの使用法をよりよく理解するために、Java インターフェースの例を見てみましょう。クラス「Media Player」には、CD プレーヤーと DVD プレーヤーの 2 つのサブクラスがあります。それぞれが音楽を再生するための Java メソッドで独自のインターフェース実装を持っています。
もう 1 つのクラス「コンボ ドライブ」は、CD と DVD の両方を継承しています (下の画像を参照)。どの再生方法を継承する必要がありますか?これにより、重大な設計上の問題が発生する可能性があります。したがって、Java は多重継承を許可しません。
それでは、犬の別の例を見てみましょう。
クラス「動物」と「ペット」を継承するクラス「犬」という要件があるとします (下の画像を参照)。ただし、Java で 2 つのクラスを拡張することはできません。それで、あなたは何をしますか?解決策はインターフェイスです。
インターフェイスのルールブックには、
- Java 実装インターフェースは 100% 抽象クラスであり、抽象メソッドしかありません。
- クラスはインターフェースをいくつでも実装できます。
クラス Dog は、クラス「アニマル」に拡張し、インターフェースを「ペット」として実装できます。
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 プログラムのインターフェイスの出力を観察します。
クラスとインターフェースの違い
クラスでは、変数をインスタンス化し、オブジェクトを作成できます。 | インターフェイスでは、変数をインスタンス化してオブジェクトを作成することはできません。 |
クラスは具体的な (実装を伴う) メソッドを含むことができます | インターフェイスに具体的な (実装を伴う) メソッドを含めることはできません |
クラスで使用されるアクセス指定子は、private、protected、および public です。 | インターフェイスでは、Public という 1 つの指定子のみが使用されます。 |
インターフェイスと抽象クラスをいつ使用するか?
- サブクラスのグループに対してテンプレートを定義する必要がある場合は、抽象クラスを使用します
- これらのクラスの継承ツリーに関係なく、他のクラスに対してロールを定義する必要がある場合はインターフェースを使用してください
インターフェイスに関する事実を知っておく必要があります
- Java クラスは、複数の Java インターフェースを実装できます。クラスは、インターフェースで宣言されたすべてのメソッドを実装する必要があります。
- クラスは、インターフェースで宣言されたすべての抽象メソッドをオーバーライドする必要があります
- このインターフェースにより、オブジェクトが属するクラスに関係なく、オブジェクトにメッセージを送信できます。
- クラスは、インターフェースで宣言されたメソッドに機能を提供する必要があります。
- インターフェース内のすべてのメソッドは、暗黙のうちにパブリックかつ抽象的です
- インターフェースをインスタンス化できません
- インターフェース参照は、その実装クラスのオブジェクトを指すことができます
- インターフェースは、1 つまたは複数のインターフェースから拡張できます。クラスは 1 つのクラスのみを拡張できますが、任意の数のインターフェイスを実装できます
- インターフェースは別のインターフェースを実装できません。必要に応じて別のインターフェースを拡張する必要があります。
- 別のインターフェース内で宣言されたインターフェースは、ネストされたインターフェースと呼ばれます
- 宣言時に、インターフェイス変数を初期化する必要があります。それ以外の場合、コンパイラはエラーをスローします。
- このクラスは、名前が同じで戻り値の型が異なるメソッドを持つ 2 つのインターフェースを Java で実装することはできません。
まとめ :
- インターフェースを実装するクラスは、インターフェースで宣言されたメソッドに機能を提供する必要があります
- インターフェース内のすべてのメソッドは、暗黙のうちにパブリックかつ抽象的です
- インターフェースをインスタンス化できません
- インターフェース参照は、その実装クラスのオブジェクトを指すことができます
- インターフェースは、1 つまたは複数のインターフェースから拡張できます。クラスは 1 つのクラスのみを拡張できますが、任意の数のインターフェイスを実装できます
Java
- Java インターフェイス
- 例を含む C# 抽象クラスのチュートリアル:抽象化とは?
- 例を使用したC#のインターフェイスとは
- Java Hello World:サンプルを使用して初めての Java プログラムを作成する方法
- Java の String Length() メソッド:例で見つける方法
- Java String charAt() メソッドと例
- 例を使用したJava文字列のendsWith()メソッド
- Java のインターフェイスと抽象クラス:違いは何ですか?
- Java BufferedReader:例を使用して Java でファイルを読み取る方法
- プログラム例を使用した Java の挿入ソート アルゴリズム
- Java-インターフェース