工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java 8 - デフォルトのメソッド

Java 8 では、インターフェイスにデフォルト メソッドを実装するという新しい概念が導入されています。この機能は下位互換性のために追加されているため、古いインターフェースを使用して Java 8 のラムダ式機能を活用できます。

たとえば、「リスト」または「コレクション」インターフェイスには「forEach」メソッド宣言がありません。したがって、そのようなメソッドを追加すると、コレクション フレームワークの実装が壊れるだけです。 Java 8 ではデフォルト メソッドが導入されているため、List/Collection インターフェースは forEach メソッドのデフォルト実装を持つことができ、これらのインターフェースを実装するクラスは同じものを実装する必要はありません。

構文

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

複数のデフォルト

インターフェイスのデフォルト関数では、クラスが同じデフォルト メソッドを持つ 2 つのインターフェイスを実装している可能性があります。次のコードは、このあいまいさを解決する方法を説明しています。

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

public interface fourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

最初の解決策は、デフォルトの実装をオーバーライドする独自のメソッドを作成することです。

public class car implements vehicle, fourWheeler {

   public void print() {
      System.out.println("I am a four wheeler car vehicle!");
   }
}

2 番目の解決策は、super を使用して指定されたインターフェイスのデフォルト メソッドを呼び出すことです。

public class car implements vehicle, fourWheeler {

   public void print() {
      vehicle.super.print();
   }
}

静的デフォルト メソッド

インターフェイスは、Java 8 以降の静的ヘルパー メソッドを持つこともできます。

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

デフォルト メソッドの例

たとえば、C:\> JAVA.

などで任意のエディターを使用して、次の Java プログラムを作成します。

Java8Tester.java

ライブデモ
public class Java8Tester {

   public static void main(String args[]) {
      Vehicle vehicle = new Car();
      vehicle.print();
   }
}

interface Vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

interface FourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

class Car implements Vehicle, FourWheeler {

   public void print() {
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("I am a car!");
   }
}

結果を確認する

javac を使用してクラスをコンパイルします コンパイラは次のように -

C:\JAVA>javac Java8Tester.java

Java8Tester を次のように実行します -

C:\JAVA>java Java8Tester

次の出力が生成されるはずです-

I am a vehicle!
I am a four wheeler!
Blowing horn!!!
I am a car!

Java

  1. Java オペレーター
  2. Java コメント
  3. Java for-each ループ
  4. Java 文字列
  5. Java 抽象クラスと抽象メソッド
  6. Java インターフェイス
  7. Java匿名クラス
  8. Java try-with-resources
  9. Java アノテーション
  10. Java アサーション
  11. Java 文字列 toLowercase() および toUpperCase() メソッド