JavaSE-インタフェース-基礎知識点整理
9029 ワード
/*インタフェースは複数のクラスの共通仕様であり、参照データ型である
Java 9でインタフェースに含めることができる内容:1.定数2.抽象的な方法3.既定の方法4.静的方法5.プライベートメソッド
public abstractはインタフェースの固定修飾子として選択的に方法の中の3要素を省略して任意に定義することができる
1.インタフェースクラスは直接使用することができず、そのインタフェースを実現するためにもう一つの「実装クラス」が必要である.インタフェースの実装クラスは、インタフェース内のすべての抽象的な方法を上書きしなければならない.インプリメンテーションクラスのオブジェクトの作成
Java 8からインタフェースにデフォルトメソッドpublic default戻り値タイプメソッド名(){}があります.インタフェースのアップグレードの問題を解決するためのデフォルトの方法は、クラスの書き換えを実現できます.
Java 8からインタフェースに静的メソッドpublic staticメソッド名(){メソッドボディ};インタフェース実装クラスを介してインタフェース内の静的メソッドを呼び出すことはできませんインタフェース名を介してインタフェース静的メソッドを呼び出す
インタフェースプライベートメソッド:1つのメソッドを抽出し、2つのインタフェースメソッド間の重複コード問題を解決する.通常のプライベートメソッド:デフォルトメソッドの重複を解決します.静的プライベートメソッド静的プライベートメソッド静的メソッドの重複を解決する
インタフェース定数:public static final int num=10;final:変更不可なので:インタフェース定数を割り当てると、インタフェース名を使用して定数名を直接呼び出して完全に大文字にし、下線で区切る*/
Java 9でインタフェースに含めることができる内容:1.定数2.抽象的な方法3.既定の方法4.静的方法5.プライベートメソッド
public abstractはインタフェースの固定修飾子として選択的に方法の中の3要素を省略して任意に定義することができる
1.インタフェースクラスは直接使用することができず、そのインタフェースを実現するためにもう一つの「実装クラス」が必要である.インタフェースの実装クラスは、インタフェース内のすべての抽象的な方法を上書きしなければならない.インプリメンテーションクラスのオブジェクトの作成
Java 8からインタフェースにデフォルトメソッドpublic default戻り値タイプメソッド名(){}があります.インタフェースのアップグレードの問題を解決するためのデフォルトの方法は、クラスの書き換えを実現できます.
Java 8からインタフェースに静的メソッドpublic staticメソッド名(){メソッドボディ};インタフェース実装クラスを介してインタフェース内の静的メソッドを呼び出すことはできませんインタフェース名を介してインタフェース静的メソッドを呼び出す
インタフェースプライベートメソッド:1つのメソッドを抽出し、2つのインタフェースメソッド間の重複コード問題を解決する.通常のプライベートメソッド:デフォルトメソッドの重複を解決します.静的プライベートメソッド静的プライベートメソッド静的メソッドの重複を解決する
インタフェース定数:public static final int num=10;final:変更不可なので:インタフェース定数を割り当てると、インタフェース名を使用して定数名を直接呼び出して完全に大文字にし、下線で区切る*/
package learning.day5.Interface;
public interface MyInterfaceAbs {
public static final int NUM_123 = 10;//
public abstract void methodAbs();//
public default void methodDefault() {
System.out.println( " !" );
}
public static void methodStatic() {
System.out.println( " !" );
}
private void methodDefaultCommon() {
System.out.println( " " );
}
private static void methodStaticCommon() {
System.out.println( " !" );
}
}
package learning.day5.Interface;
public class MyInterface implements MyInterfaceAbs {
@Override
public void methodAbs() {
System.out.println( " !" );
}//
@Override
public void methodDefault() {
System.out.println( " !" );
}//
}
package learning.day5.Interface;
public class MyInterfaceMain {
public static void main(String[] args) {
MyInterface inter = new MyInterface();// new
inter.methodAbs();//
inter.methodDefault();//
MyInterfaceAbs.methodStatic();//
int num = MyInterfaceAbs.NUM_123;//
System.out.println( num );
}
}