Javaインターフェースの継承と使用インターフェースの操作例


本明細書の例は、Javaインターフェースの継承と使用インターフェースの動作を説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
一つのインターフェースの継承
1点目
インターフェースは複数の継承をサポートしています。一つのインターフェースは複数の父インターフェースがあり、サブインターフェースはある父インターフェースを拡張して、父インターフェースで定義されたすべての抽象的な方法、定数を獲得します。
一つのインターフェースが複数の親インターフェースを継承する場合、複数の親インターフェースはextensキーワードの後に並ぶ。
2コード

interface interfaceA
{
  int PROP_A = 5;
  void testA();
}
interface interfaceB
{
  int PROP_B = 6;
  void testB();
}
interface interfaceC extends interfaceA, interfaceB
{
  int PROP_C = 7;
  void testC();
}
public class InterfaceExtendsTest
{
  public static void main(String[] args)
  {
   System.out.println(interfaceC.PROP_A);
   System.out.println(interfaceC.PROP_B);
   System.out.println(interfaceC.PROP_C);
  }
}

3運転
5
6
7
4説明
interfaceCインターフェースはinterfaceAとinterfaceBを継承していますので、interfaceCではそれらの定数を獲得していますので、main()メソッドではinterfaceCを通じてPROP_にアクセスすることが見られます。A、PROP_B、PROP_C定数
二使用インターフェース
1点目
インターフェースはインスタンスを作成するために使用できませんが、インターフェースは参照型変数を宣言するために使用できます。この参照型の変数は、実際のクラスのオブジェクトに参照してください。インターフェースの主な用途は実現される種類の実現です。インターフェースは主に以下のような用途があります。
  • は、変数を定義し、強制型変換にも使用することができる。
  • は、インターフェースで定義された定数を呼び出します。
  • は他のクラスによって実装される。
  • 1つのクラスは、1つ以上のインターフェースを実現し、extensキーを引き継ぎ、実現するにはimplementsキーワードを使用することができます。一つのクラスは複数のインターフェースを実現できます。これはJavaが単一継承の柔軟性が足りないために補足したものです。
    一つのクラスが一つ以上のインターフェースを実現した後、このクラスはこれらのインターフェースで定義されているすべての抽象的な方法を完全に実現しなければなりません。さもないと、このクラスは親インターフェースから継承された抽象的な方法を保留します。このクラスも抽象的なクラスと定義しなければなりません。
    2コード
    
    interface Output
    {
      //                
      int MAX_CACHE_LINE = 50;
      //              public     
      void out();
      void getData( String msg );
      //          ,    default  
      default void print( String... msgs )
      {
       for (String msg : msgs)
       {
         System.out.println(msg);
       }
      }
      //          ,    default  
      default void test()
      {
       System.out.println("   test()  ");
      }
      //         、    static  
      static String staticTest()
      {
       return "Class method";
      }
    }
    //     Product  
    interface Product
    {
      int getProduceTime();
    }
    //  Printer   Output Product  
    public class Printer implements Output , Product
    {
      private String[] printData
       = new String[MAX_CACHE_LINE];
      //              
      private int dataNum = 0;
      public void out()
      {
       //       ,    
       while(dataNum > 0)
       {
         System.out.println("     :" + printData[0]);
         //            ,         1
         System.arraycopy(printData , 1
          , printData, 0, --dataNum);
       }
      }
      public void getData(String msg)
      {
       if (dataNum >= MAX_CACHE_LINE)
       {
         System.out.println("      ,    ");
       }
       else
       {
         //            ,         1。
         printData[dataNum++] = msg;
       }
      }
      public int getProduceTime()
      {
       return 45;
      }
      public static void main(String[] args)
      {
       //     Printer  ,  Output  
       Output o = new Printer();
       o.getData("   Java EE      ");
       o.getData("  Java  ");
       o.out();
       o.getData("  Android  ");
       o.getData("  Ajax  ");
       o.out();
       //   Output          
       o.print("   " , "   " , "   ");
       o.test();
       //     Printer  ,  Product  
       Product p = new Printer();
       System.out.println(p.getProduceTime());
       //                  Object     
       Object obj = p;
      }
    }
    
    
    3運転
    プリンターの印刷:ライト級Java EE企業の応用は実戦的です。
    プリンタの印刷:狂ったJavaハンドアウト
    プリンタ印刷:狂ったAndroidノート
    プリンタ印刷:狂ったAjaxプリント
    孫悟空
    猪八戒
    白骨精
    デフォルトのtest()メソッド
    45
    4説明
    PrinterはOutputインターフェースとProductインターフェースを実現していますので、Pinterオブジェクトは直接Output変数に割り当てられます。直接Product変数に割り当てられます。Printer類はOutput類のサブクラスであり、Product類のサブクラスでもあるようです。これはJavaが提供するアナログの継承が多いです。
    PrinterはOutputインターフェースを実現し、Outputインターフェースで定義されているprint(print)方法とtest()の2つのデフォルト方法を取得することができるので、Printerのインスタンスはこの2つのデフォルト方法を直接呼び出すことができる。
    インターフェースは任意のクラスを引き継ぐことを表示できませんが、すべてのインターフェースタイプの参照変数は直接Objectタイプの参照変数に割り当てられます。
    もっと多くのjava関連の内容に興味がある読者は当駅のテーマを調べてもいいです。「Javaは対象プログラムに向かって入門と階段教程を設計します。」、「Javaデータ構造とアルゴリズム教程」、「Java操作DOMノード技術のまとめ」、「Javaファイルとディレクトリの操作テクニックのまとめ」、「Javaキャッシュ操作テクニックのまとめ
    本論文で述べたように、皆さんのjavaプログラムの設計に役に立ちます。