Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Java 8 - Méthodes par défaut

Java 8 introduit un nouveau concept d'implémentation de méthode par défaut dans les interfaces. Cette capacité est ajoutée pour la rétrocompatibilité afin que les anciennes interfaces puissent être utilisées pour tirer parti de la capacité d'expression lambda de Java 8.

Par exemple, les interfaces "List" ou "Collection" n'ont pas de déclaration de méthode "forEach". Ainsi, l'ajout d'une telle méthode cassera simplement les implémentations du framework de collecte. Java 8 introduit la méthode par défaut afin que l'interface List/Collection puisse avoir une implémentation par défaut de la méthode forEach, et la classe implémentant ces interfaces n'a pas besoin d'implémenter la même chose.

Syntaxe

public interface vehicle {

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

Plusieurs valeurs par défaut

Avec les fonctions par défaut dans les interfaces, il est possible qu'une classe implémente deux interfaces avec les mêmes méthodes par défaut. Le code suivant explique comment cette ambiguïté peut être résolue.

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

La première solution consiste à créer une méthode propre qui remplace l'implémentation par défaut.

public class car implements vehicle, fourWheeler {

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

La deuxième solution consiste à appeler la méthode par défaut de l'interface spécifiée à l'aide de super.

public class car implements vehicle, fourWheeler {

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

Méthodes statiques par défaut

Une interface peut également avoir des méthodes d'assistance statiques à partir de Java 8.

public interface vehicle {

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

Exemple de méthode par défaut

Créez le programme Java suivant à l'aide de l'éditeur de votre choix dans, par exemple, C:\> JAVA.

Java8Tester.java

Démo en direct
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!");
   }
}

Vérifier le résultat

Compilez la classe en utilisant javac compilateur comme suit -

C:\JAVA>javac Java8Tester.java

Exécutez maintenant le Java8Tester comme suit -

C:\JAVA>java Java8Tester

Il devrait produire la sortie suivante -

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

Java

  1. Opérateurs Java
  2. Commentaires Java
  3. Java pour chaque boucle
  4. Chaînes Java
  5. Classe abstraite Java et méthodes abstraites
  6. InterfaceJava
  7. Classe anonyme Java
  8. Java essayer avec des ressources
  9. Annotations Java