実装とインタフェースの考慮Interface-

パッケージcn.learn.Interface; 

パブリック インターフェースMyInterfaceA {
    パブリック 抽象 ボイドmethodA();
   パブリック 抽象 ボイドmethodAbs();
   公共 デフォルト  無効methodDefault(){ 
       System.out.printlnは( "AAA" ); 
   } 
}
パッケージcn.learn.Interface;

パブリック インターフェースMyInterfaceB {
    パブリック 抽象 ボイドmethodB();
   パブリック 抽象 ボイドmethodAbs();
   公共 デフォルト  無効methodDefault(){ 
      System.out.printlnは( "BBB" ); 
   } 
}
1  パッケージcn.learn.Interface;
 2  // 多重継承インタフェース
 3  // メソッドが抽象メソッド本体ないのでmethodAbsは、競合しない請求項
4。 
5。 パブリック クラス ExtendsInterfaceImpl 実装ExtendsInteface {
 6。     // オーバーライドデフォルトの方法、java12ないデフォルトキーワードで
7      @Override
 。8      公共 ボイドmethodDefault(){
 9  
10      }
 11  
12である     @Override
 13である     公共 ボイドメソッド(){
 14  
15      }
 16  
17      @Override
 18であります     公共 ボイドmethodA({)
 。19  
20である     }
 21は、 
22である     @Override
 23は     公共 ボイドmethodB(){
 24  
25      }
 26である     // 抽象メソッドのオーバーライドは競合
27      @Override
 28      公共 ボイドmethodAbsを(){
 29  
30      }
 31です }
1  パッケージcn.learn.Interface;
 2  / * 
3    クラス区分とインタフェース
 4    クラスとクラス1の間には単一継承、唯一の直接の親である
 5    インターフェースと、マルチクラスの実装、クラス間の2複数のインターフェースを実装することができ
 6    3インタフェースとインタフェースとの間は多重継承、あなたが他の抽象メソッド・インターフェースの多様するインターフェイスである
 7  
8  の4つの方法を含む、言い訳以下の
 9  1.methodA
 10  2.methodB
 11  3.method
 12  とBの口実と同時に** 4.methodAbsソースを
 13  
14  *
 15  注:多重継承クラスのインタフェース、インタフェースマルチ父は競合を継承問題ではありませんが、デフォルトの方法は問題があるだろう繰り返され、あなたがオーバーライドする必要があります
 16  
17   * / 
18である 
。19  パブリック インターフェース ExtendsInteface 延びMyInterfaceB、MyInterfaceAを{
20      パブリック 抽象 ボイド法();
21  
22      @Override
 23      デフォルト ボイドmethodDefault(){
 24          
25      }
 26 }
1  パッケージcn.learn.Interface;
 2  / * 
3。     インタフェース注:
 4  1インターフェースは、静的ブロック静的{}と工法ではない
 。5  
。6  2.直接の親クラスは、固有の、しかし同時にクラスであるが複数のインターフェイス
 7つの 形式:
 8  公共MyInterfaceImpl実装クラス名をインターフェイス、インターフェイスBの名前{
 9          //すべての抽象メソッドは、カバー
 10  }
 11。 
12が 重複抽象方法で実施される場合インターフェイス実装クラス3の複数のみ上書き
 13     (デフォルトの方法は、このようなカバーでオーバーライドしなければならない複数のインタフェースがある場合)を1回
 14  
15  4インターフェースのすべての場合、すべての抽象メソッドを実現しない実装
 16は、   抽象クラスである必要があります実装クラス
 17  
18であり、 継承の直接の親のうちのサブクラス法、方法、デフォルトのインターフェイスの競合、優先クラスメソッド親を持つ場合6.
 19    フォーマット:
 20   サブクラスのパブリッククラス名は、親クラスが実装延びインタフェース{
 21      メソッド本体
 22    }
 23    注:デフォルトインターフェイスのメソッドは、親よりも低い優先度ので、この場合を書き換える必要が
 24  
25  
26である  * / 
27  // すべてのJava直接的または間接的にクラスは、以下の、オブジェクトのサブクラスである
28の パブリック クラスを MyinterfaceImpl 延びオブジェクト実装MyInterfaceA、MyInterfaceB {
 29      // 同じ抽象メソッドのオーバーライド二つのインターフェース
30      @Override
 31は     公共 ボイドmethodAbs(){
 32          のSystem.outを.println(「同じ2つのインターフェイスを抽象メソッドを書き換える」);
 33      }
 34である 
35     @Override
 36      公共 ボイドmethodDefault(){
 37 [  
38である     }
 39  
40      //はすべての抽象メソッドポートポートBが上書き
41である     @Override
 42は     公共 ボイドmethodA(){
 43である          のSystem.out.println(「上書き方法A " );
 44である     }
 45  
46である     @Override
 47      公共 ボイドmethodB(){
 48          のSystem.out.println("方法Bの上書き」);
 49      }
 50 }
/ * 
インタフェースのコンテンツの要約
1.実際には、メンバ変数のpublic static final変更は、そこにあるグローバル定数である
  と定数を割り当てなければならない、と変更することはできません
  、アンダースコアと完全に大文字で、別の言葉であることをフォーマットを、

2インターフェースは、最も重要な抽象メソッドです、フォーマット:
  パブリック抽象メソッドの戻り値の型の名前(パラメータリスト); 
  注:すべての実装クラスは、抽象クラスを除いて、すべてのインターフェイスのメソッドをオーバーライドする必要があり

ます。3.スタートのJava 8は、インタフェースはデフォルトの方法、形式を定義することができます
  公共defalut戻り値の型をメソッド名(パラメータリスト){ 
    メソッド本体   
  } 
  注:デフォルトのメソッドを上書きすることができる

:インターフェースは、静的メソッド、フォーマット定義することができ、開始のJava 8から4の
  パブリック静的メソッドの戻り型の名前(パラメータリスト){ 
    メソッド本体   
  } 
  注:静的が修正クラスに静的メソッド呼び出しによって達成することができない、インターフェースの名前で呼ばれるべきである

ジャワ9を起動5.インタフェースは形式、独自のメソッドの定義を可能にする
  通常のプライベートメソッド:
  パブリック、プライベートメソッド名、戻り値のタイプ(パラメータリスト){ 
    メソッド本体
  } 
  静的プライベートメソッド: 
  } 
  プライベートパブリック静的な戻り値の型 メソッド名(パラメータリスト){
    メソッド本体の
  注:プライベートメソッド、あなただけはインターフェース、実装クラスを呼び出すことができますまたは他のユーザーによって使用することはできません




* /

 

おすすめ

転載: www.cnblogs.com/huxiaobai/p/11462162.html