Latest web development tutorials

Java 8 Standardmethode

Java 8 neue Funktionen Java 8 neue Funktionen


Java 8 neue Standard-Interface-Methoden.

Einfach ausgedrückt, ist die Standardmethode der Interface-Methode implementiert werden kann, und Implementierungsklasse nicht seine Methoden erfordern zu implementieren.

Wir haben gerade vor dem Namen der Methode ein Standard Schlüsselwort hinzuzufügen, um die Standardmethode zu implementieren.

Warum sollte diese Funktion?

Zuerst vor der Schnittstelle ist ein zweischneidiges Schwert, zum Wohle der abstrakten und nicht für spezifische Programmierfehler, dass es ist, wenn Sie die Schnittstelle ändern müssen, die Notwendigkeit, die gesamte Klasse zu ändern, die die Schnittstelle implementiert, die aktuelle Java Collections Framework 8 vor keine foreach Verfahren, in der Regel denken an Lösungen in JDK fügen Sie neue Methoden und Umsetzung der entsprechenden Schnittstelle. Allerdings hat die Ausführung freigegeben wurde, sie nicht zur gleichen Zeit das Hinzufügen von neuen Methoden der Schnittstelle, die bestehenden Implementierungen nicht beeinträchtigt ist. Daher ist die Einführung der Standardmethode. Ihr Zweck ist die vorhandene Modifikation und Implementierung der Schnittstelle zu lösen, ist nicht mit dem Problem kompatibel.

Grammatik

Die Standard-Methode Syntax lautet wie folgt:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}

Mehrere Standardmethode

Schnittstelle ein Standard-Methode hat, betrachten wir den Fall, eine Klasse implementiert mehrere Schnittstellen, und diese Schnittstellen haben das gleiche Standardmethode, die folgenden Beispiele die Abhilfe für diese Situation veranschaulichen:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}

public interface fourWheeler {
   default void print(){
      System.out.println("我是一辆四轮车!");
   }
}

Die erste Lösung ist eine eigene Standardmethode erstellen, um die Standardmethode zum Umschreiben der Schnittstelle außer Kraft zu setzen:

public class car implements vehicle, fourWheeler {
   default void print(){
      System.out.println("我是一辆四轮汽车!");
   }
}

Die zweite Lösung kann Super verwenden die Standardmethode angegebene Schnittstelle zu nennen:

public class car implements vehicle, fourWheeler {
   default void print(){
      vehicle.super.print();
   }
}

Statische Standardmethode

8 Java Ein weiteres Merkmal ist die Schnittstelle erklären kann (und kann eine Implementierung zur Verfügung stellen) statische Methode. Zum Beispiel:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
	// 静态方法
   static void blowHorn(){
      System.out.println("按喇叭!!!");
   }
}

Die Standardmethode von Beispiel

Wir können den folgenden Code verwenden, um die Standard-Methode, um herauszufinden, können Sie den Code Java8Tester.java Datei platzieren:

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

interface Vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
	
   static void blowHorn(){
      System.out.println("按喇叭!!!");
   }
}

interface FourWheeler {
   default void print(){
      System.out.println("我是一辆四轮车!");
   }
}

class Car implements Vehicle, FourWheeler {
   public void print(){
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("我是一辆汽车!");
   }
}

Die Umsetzung des obigen Skripts, Ausgabe lautet:

$ javac Java8Tester.java 
$ java Java8Tester
我是一辆车!
我是一辆四轮车!
按喇叭!!!
我是一辆汽车!

Java 8 neue Funktionen Java 8 neue Funktionen