Javaインタフェース(interface)の概念と使用
1679 ワード
前回、私たちは抽象クラスについて話しましたが、抽象クラスを知らない人は私が最後に書いたJava抽象クラスを見てもいいです.
抽象クラスには、1つ以上の抽象メソッドを含めることができます.しかしインタフェース(interface)では、すべての方法が抽象的でなければならず、抽象クラスよりも「抽象的」な方法体を持つことはできません.
インタフェースはinterfaceキーワードを使用して修飾され、特殊な抽象クラスと見なすことができ、クラスがどのようにするかを規定するのではなく、何をしなければならないかを指定することができます.
インタフェースはいくつかの定数と抽象メソッドの集合であり,インタフェースは特殊な抽象クラスのようである.しかし、1つのクラスは1つのクラスしか継承できません.「単一継承」と呼ばれ、Javaクラスが「マルチ継承」できないことを補うために、Javaはインタフェースの概念を導入しているので、1つのクラスは複数のインタフェースを実現することができます.
しかし、インタフェースには、以下のような機能があります.インタフェースでは抽象メソッドしか定義できません.これらのメソッドのデフォルトはpublic abstractです.したがって、メソッドを宣言するときにこれらの修飾子を省略できます.インタフェースでインスタンス変数、非抽象的なインスタンスメソッド、および静的メソッドを定義しようとすると、不正です. インタフェースには構造方法がなく、インスタンス化できない. あるインタフェースは別のインタフェースを実現しないが、複数の他のインタフェースを継承することができ、インタフェースのマルチ継承特徴はクラスの単一継承性を補う.
インタフェースはオブジェクト向けJavaプログラム設計において重要な地位を占めている.実際、設計段階で最も重要な任務の一つは、各部分の接続を設計し、インタフェースの組み合わせを通じて、最も基本的な基本的なフレームワーク構造を形成することである.
インタフェースの使用
インタフェースの使用はクラスの使用とは少し違います.クラスを使用する必要がある場合は、newキーワードを直接使用してクラスのインスタンスを構築しますが、インタフェースはnewキーワードを直接使用してインスタンスを構築することはできません.
インタフェースはクラスによって抽象的な方法を実装し、インスタンス化する必要があります.クラス実装インタフェースのキーワードはimplementsです.
クラスがインタフェースのすべての抽象メソッドを実装できない場合は、クラスを抽象クラスとして定義する必要があります.
インタフェースのインスタンスの作成は許可されませんが、インタフェースを実装するインスタンスを指すインタフェースタイプの変数を定義できます.
1つのクラスは1つのクラスしか継承できませんが、複数のインタフェースを継承できます.
実装インタフェースのフォーマットは、修飾子classクラス名extends親クラスimplements複数のインタフェース{実装方法
}
インタフェースはタイプとしてインタフェースを参照タイプとして使用し、インタフェースを実装するクラスのインスタンスはすべてインタフェースタイプの変数に格納することができ、これらの変数がクラスで実装されたインタフェースにアクセスできる方法によって、Javaランタイムシステムはどのクラスで使用すべきかを動的に決定し、実際には対応する実装クラスを呼び出す方法である.
抽象クラスには、1つ以上の抽象メソッドを含めることができます.しかしインタフェース(interface)では、すべての方法が抽象的でなければならず、抽象クラスよりも「抽象的」な方法体を持つことはできません.
インタフェースはinterfaceキーワードを使用して修飾され、特殊な抽象クラスと見なすことができ、クラスがどのようにするかを規定するのではなく、何をしなければならないかを指定することができます.
public interface InterfaceTest {
int a=10;
void method1();
void method2();
}
インタフェースはいくつかの定数と抽象メソッドの集合であり,インタフェースは特殊な抽象クラスのようである.しかし、1つのクラスは1つのクラスしか継承できません.「単一継承」と呼ばれ、Javaクラスが「マルチ継承」できないことを補うために、Javaはインタフェースの概念を導入しているので、1つのクラスは複数のインタフェースを実現することができます.
しかし、インタフェースには、以下のような機能があります.
インタフェースはオブジェクト向けJavaプログラム設計において重要な地位を占めている.実際、設計段階で最も重要な任務の一つは、各部分の接続を設計し、インタフェースの組み合わせを通じて、最も基本的な基本的なフレームワーク構造を形成することである.
インタフェースの使用
インタフェースの使用はクラスの使用とは少し違います.クラスを使用する必要がある場合は、newキーワードを直接使用してクラスのインスタンスを構築しますが、インタフェースはnewキーワードを直接使用してインスタンスを構築することはできません.
インタフェースはクラスによって抽象的な方法を実装し、インスタンス化する必要があります.クラス実装インタフェースのキーワードはimplementsです.
クラスがインタフェースのすべての抽象メソッドを実装できない場合は、クラスを抽象クラスとして定義する必要があります.
インタフェースのインスタンスの作成は許可されませんが、インタフェースを実装するインスタンスを指すインタフェースタイプの変数を定義できます.
1つのクラスは1つのクラスしか継承できませんが、複数のインタフェースを継承できます.
実装インタフェースのフォーマットは、修飾子classクラス名extends親クラスimplements複数のインタフェース{実装方法
}
インタフェースはタイプとしてインタフェースを参照タイプとして使用し、インタフェースを実装するクラスのインスタンスはすべてインタフェースタイプの変数に格納することができ、これらの変数がクラスで実装されたインタフェースにアクセスできる方法によって、Javaランタイムシステムはどのクラスで使用すべきかを動的に決定し、実際には対応する実装クラスを呼び出す方法である.