インタフェースの基礎知識の整理
5571 ワード
インタフェースの概要とその基本的な特徴
インタフェースは、Java言語の参照タイプであり、インタフェースの内部には主にメソッドがカプセル化されており、抽象メソッド(JDK 7およびそれ以前)、デフォルトメソッドおよび静的メソッド(JDK 8)、プライベートメソッド(JDK 9)が含まれている.
インタフェースの定義はクラスの定義と似ており、クラスと同じレベルでinterfaceキーワードを使用して修飾され、classファイルにコンパイルされますが、クラスではなく参照データ型であることを明確にする必要があります.
インタフェースの特徴:
1インタフェースではメンバー変数を定義できませんが、定数を定義できます.値は変更できません.デフォルトではpublic static final修飾が使用されます.
②インタフェースに構造方法がなく、オブジェクトを作成できない.
③インタフェースに静的コードブロックはありません.
インタフェースの抽象的な方法(JDK 7およびそれ以前)
インタフェースの抽象メソッドはabstractキーワードで修飾され,メソッド体はなく,実装クラス実装のために使用される.
インタフェースのデフォルトメソッドと静的メソッド(JDK 8)
インタフェースのデフォルトの方法:defaultキーワード修飾を使用して、クラスオブジェクト呼び出しまたはクラス書き換えを実現するために省略できません.デフォルトの権限修飾子はpublicです.
インタフェースの静的方法:staticキーワード修飾を使用して、インタフェースの直接呼び出しに供する.
インタフェース内のプライベートメソッド(JDK 9)
JDK 9が誕生したこの新技術は、主にコードの多重性を高めるためであり、インタフェースのデフォルトメソッドと静的メソッドに重複するコンテンツが何度も書く必要がある場合は、共通のコンテンツをプライベートメソッドに置くことで、コードの書き込みを減らすことができ、プライベートメソッドは本インタフェースでしか使用できず、より安全である.
≪プライベート非静的メソッド|Private Non Static Method|emdw≫:デフォルトのメソッドのみが呼び出されます.
≪プライベート・静的メソッド|Private Static Method|emdw≫:デフォルト・メソッドと静的メソッドの両方を呼び出すことができます.
インタフェースの基本的な実装
実装インタフェースのクラスをインタフェースの実装クラスと呼ぶか、インタフェースのサブクラスと呼ぶか、実装のフォーマットは継承と似ているが、キーワードが異なるだけで、実装のキーワードはimplementsである.
継承システムでは、1つのクラスは1つの親クラスしか継承できませんが、インタフェースシステムでは、1つのクラスが同時に複数のインタフェースを実現できます.
クラスの親メソッドとインタフェースのデフォルトメソッドが同じ名前の場合、クラスは親メソッドを優先的に使用します.
インタフェースは、Java言語の参照タイプであり、インタフェースの内部には主にメソッドがカプセル化されており、抽象メソッド(JDK 7およびそれ以前)、デフォルトメソッドおよび静的メソッド(JDK 8)、プライベートメソッド(JDK 9)が含まれている.
インタフェースの定義はクラスの定義と似ており、クラスと同じレベルでinterfaceキーワードを使用して修飾され、classファイルにコンパイルされますが、クラスではなく参照データ型であることを明確にする必要があります.
public interface {
// ;
// ;
// ;
// ;
}
インタフェースの特徴:
1インタフェースではメンバー変数を定義できませんが、定数を定義できます.値は変更できません.デフォルトではpublic static final修飾が使用されます.
②インタフェースに構造方法がなく、オブジェクトを作成できない.
③インタフェースに静的コードブロックはありません.
インタフェースの抽象的な方法(JDK 7およびそれ以前)
インタフェースの抽象メソッドはabstractキーワードで修飾され,メソッド体はなく,実装クラス実装のために使用される.
public interface User {
//
public abstract void method();
}
インタフェースのデフォルトメソッドと静的メソッド(JDK 8)
インタフェースのデフォルトの方法:defaultキーワード修飾を使用して、クラスオブジェクト呼び出しまたはクラス書き換えを実現するために省略できません.デフォルトの権限修飾子はpublicです.
インタフェースの静的方法:staticキーワード修飾を使用して、インタフェースの直接呼び出しに供する.
public interface User {
//
public default void method1() {
System.out.println(" ");
}
//
public static void method2() {
System.out.println(" ");
}
}
インタフェース内のプライベートメソッド(JDK 9)
JDK 9が誕生したこの新技術は、主にコードの多重性を高めるためであり、インタフェースのデフォルトメソッドと静的メソッドに重複するコンテンツが何度も書く必要がある場合は、共通のコンテンツをプライベートメソッドに置くことで、コードの書き込みを減らすことができ、プライベートメソッドは本インタフェースでしか使用できず、より安全である.
≪プライベート非静的メソッド|Private Non Static Method|emdw≫:デフォルトのメソッドのみが呼び出されます.
≪プライベート・静的メソッド|Private Static Method|emdw≫:デフォルト・メソッドと静的メソッドの両方を呼び出すことができます.
public interface User {
//
private void method(){
System.out.println(" ");
}
}
インタフェースの基本的な実装
実装インタフェースのクラスをインタフェースの実装クラスと呼ぶか、インタフェースのサブクラスと呼ぶか、実装のフォーマットは継承と似ているが、キーワードが異なるだけで、実装のキーワードはimplementsである.
継承システムでは、1つのクラスは1つの親クラスしか継承できませんが、インタフェースシステムでは、1つのクラスが同時に複数のインタフェースを実現できます.
class [extends ] implements 1, 2, 3... {
// 【 】
// 【 , 】
}
クラスの親メソッドとインタフェースのデフォルトメソッドが同じ名前の場合、クラスは親メソッドを優先的に使用します.