1、インターフェース定義:
JAVAインターフェースは方法の一連のステートメントであり、この方法は、特徴の集合であるインターフェイスは、だけでなく、メソッドの実装が定義され、これらの方法は、異なる場所で異なるクラスに実装されてもよく、これらの実装を有していてもよく、異なる機能を。
2、形式
[パブリック]インターフェースインターフェース名は[] 3インターフェースの親インターフェース1、2インターフェース親、親を拡張します {
//静的定数
[公開] [静的] [最終]名=データ・タイプ定数定数値。
//抽象メソッド
[共有] [抄録] [ネイティブ]戻り値の型メソッド名(パラメータリスト);
}
図3は、クラスはインターフェイスフォーマットを実装します。
[修飾]クラスは、クラス名[名] [親クラスが実装するインタフェース1、インタフェース2、インタフェース3を}延び {
クラスのメンバ変数とメンバメソッド。
インタフェース1のすべてのメソッドのための体の製造方法は、インターフェース1を実装します。
インタフェース2、インタフェース2を実装するためにすべてのメソッドのための体の製造方法。
インタフェース3,3実装インタフェースのすべてのメソッドのための体の製造方法。
}
4、インタフェースの特徴:
1)インタフェースをインスタンス化することができません。
2)すべてのインタフェース方法が抽象です。
3)インターフェースフィールドは静的定数でなければなりません
4)すべてのメンバーへのインタフェースは、パブリックでなければなりません
5)インタフェースを実現または多重継承することができます
6)コンストラクタをインターフェースありません
5、どのようにアクセスインタフェース定数へ
インターフェイスの名前。定数名
コードシェア:
MyInterface1 {パブリックインターフェース 。; A =最終int型のpublic static 1 //同等 のint B = 2; パブリック抽象ボイドeat1(); と//等価 ボイドwalk1(); }
DogInterface実装MyInterface1 {クラスのパブリック @Override ます。public void eat1(){ System.out.printlnは( "肉のような犬"); } @Override ます。public void walk1(){ System.out.printlnは( "犬を実行している愛" ); } パブリック無効SLEEP(){ System.out.printlnは( "スリープに犬の愛"); } }
CatInterface実装MyInterface1 {クラス公開 @Override ます。public void eat1(){ System.out.printlnは( "愛の魚猫"); } @Override ます。public void walk1(){ System.out.printlnは(「愛猫クライミング「); } }
パブリックInterfaceIest {クラス のpublic static無効メイン(文字列[] args){ MyInterface1新しい新しいDogInterface D1 =(); //多型、インターフェイスを参照----->クラスのインスタンスオブジェクトポイント d1.eat1(); D1 .walk1(); //d1.sleep();//パスコンパイラ、d1はMyInterface、MyInterface睡眠及びない場合、コンパイラは、メソッドことため //d1.b;//インスタンス化オブジェクトがインタフェースによってアクセスすることができません一定 MyInterface1新しい新しいCatInterface C1 =(); c1.walk1(); c1.eat1(); DogInterface新しい新しいDogInterface D2 =(); d2.eat1(); d2.walk1(); d2.sleep(); システム。 out.printlnを( "どのアクセスインタフェース定数"); //インターフェイス定数にアクセスする方法 のSystem.out.println(MyInterface1.a + "B:" + MyInterface1.bを); } }
//結果
犬は肉を食べるのが大好き
ランニング愛する犬を
猫はクライミングの壁の愛
猫が魚を愛する
犬は肉を食べるのが大好き
犬が実行して愛する
犬が眠りに愛する
インタフェース定数にアクセスする方法
1件のB:2
インターフェースは、多重継承を実装することができるインタフェースが複数のインタフェースを継承することができます。
パブリックインターフェースMyInterface2 { 文字列名=「陽」。 空eat2(); }
パブリックインターフェースMyInterface3はMyInterface1、MyInterface2 {延び 公共ボイドeat3を(); }
クラスは、同時に複数のインタフェースを実装することができ
MyInterface実装MyInterface1クラスパブリック、MyInterface2 { //クラスが実装する二つのインターフェース //実装二つのインタフェースのすべての方法 公共ボイドeat1(){ System.out.printlnは(「最初の食事!!!」) ; } パブリック無効walk1(){ System.out.printlnは( "第1のウォーク!"); } パブリック無効eat2(){ System.out.printlnは( "二食!!!"); } }
MyInterfaceTest実装MyInterface3 {クラス公開 @Override 公共ボイドeat1(){ System.out.printlnは( "一日三回:最初の食事"); } @Override 公共ボイドeat2(){ System.out.printlnは(「一日に三回デイトン:第食べる"); } @Override 公共ボイドeat3(){ System.out.printlnは("一日三回:第三の食事「); } @Override 公共ボイドwalk1(){ System.out.printlnは(「一日三食:最初の散歩」); } }