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 (default) dans les interfaces — Compatibilité ascendante

Java 8 introduit les méthodes par défaut (default) dans les interfaces : implémentation fournie directement dans l'interface. Ajoutées pour la compatibilité ascendante : permettre d'ajouter des méthodes (ex: forEach) aux interfaces existantes (Collection, List) sans casser les implémentations.

Syntaxe

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

Conflit de multiples méthodes default

Si une classe implémente deux interfaces avec la même méthode default :

Solution 1 : Redéfinir dans la classe

public class Car implements Vehicle, FourWheeler {
    public void print() {
        System.out.println("I am a four wheeler car vehicle!");
    }
}

Solution 2 : Appeler explicitement via super

public class Car implements Vehicle, FourWheeler {
    public void print() {
        Vehicle.super.print();
    }
}

Méthodes static dans les interfaces (Java 8+)

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

Appel : Vehicle.blowHorn().

Exemple complet

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

Sortie

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

Les méthodes default et static permettent d'évoluer les interfaces sans casser le code existant, tout en offrant des implémentations par défaut et utilitaires partagés.

Java

  1. Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
  2. Commentaires Java : Types, utilisation et bonnes pratiques
  3. Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
  4. Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
  5. Classes et méthodes abstraites en Java : guide complet
  6. Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
  7. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  8. Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
  9. Annotations Java expliquées : types, placement et exemples pratiques