Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Java 8 - Metode Default

Java 8 memperkenalkan konsep baru implementasi metode default di antarmuka. Kemampuan ini ditambahkan untuk kompatibilitas mundur sehingga antarmuka lama dapat digunakan untuk memanfaatkan kemampuan ekspresi lambda Java 8.

Misalnya, antarmuka 'Daftar' atau 'Koleksi' tidak memiliki deklarasi metode 'forEach'. Jadi, menambahkan metode seperti itu hanya akan merusak implementasi kerangka kerja koleksi. Java 8 memperkenalkan metode default sehingga antarmuka Daftar/Koleksi dapat memiliki implementasi default metode forEach, dan kelas yang mengimplementasikan antarmuka ini tidak perlu mengimplementasikan hal yang sama.

Sintaks

public interface vehicle {

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

Beberapa Default

Dengan fungsi default di antarmuka, ada kemungkinan bahwa kelas mengimplementasikan dua antarmuka dengan metode default yang sama. Kode berikut menjelaskan bagaimana ambiguitas ini dapat diselesaikan.

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!");
   }
}

Solusi pertama adalah membuat metode sendiri yang menggantikan implementasi default.

public class car implements vehicle, fourWheeler {

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

Solusi kedua adalah memanggil metode default dari antarmuka yang ditentukan menggunakan super.

public class car implements vehicle, fourWheeler {

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

Metode Default Statis

Antarmuka juga dapat memiliki metode pembantu statis dari Java 8 dan seterusnya.

public interface vehicle {

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

Contoh Metode Default

Buat program Java berikut menggunakan editor pilihan Anda, misalnya, C:\> JAVA.

Java8Tester.java

Demo Langsung
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!");
   }
}

Verifikasi Hasil

Kompilasi kelas menggunakan javac kompiler sebagai berikut -

C:\JAVA>javac Java8Tester.java

Sekarang jalankan Java8Tester sebagai berikut -

C:\JAVA>java Java8Tester

Ini harus menghasilkan output berikut -

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

java

  1. Operator Jawa
  2. Komentar Jawa
  3. Java untuk setiap Loop
  4. String Jawa
  5. Kelas Abstrak Java dan Metode Abstrak
  6. Antarmuka Jawa
  7. Kelas Anonim Java
  8. Java mencoba-dengan-sumber daya
  9. Anotasi Jawa
  10. Pernyataan Jawa