Interfaces en Java

Introduction à la programmation orientée objet en Java

Sani Yusuf

Lead Software Engineering Content Developer

Limites de l'héritage

  • Avec l'héritage, tous les membres sont hérités
  • Impossible d'hériter des membres de façon sélective

  // Classe Car   
  class Car {
    // La capacité de la batterie ne concerne
    // que les voitures électriques
    public int batteryCapacity;

    void drive() {

    }  
  }


  // Classe Toyota
  class Toyota extends Car {  
    void drive(){

    }           
  }


// Classe Main public static class Main { public static void main(String[] args) { Toyota myToyota = new Toyota(); // Toutes les voitures héritent de "batteryCapacity" // même si elles ne sont pas électriques System.out.println( myToyota.batteryCapacity); // Non applicable } }
Introduction à la programmation orientée objet en Java

Créer des interfaces

  • Les interfaces permettent d'hériter sélectivement de propriétés et de méthodes
  • Les classes utilisent les interfaces avec le mot-clé implements

  // Interface ElectricCar 
  interface ElectricCar {

  }





  // Tesla qui implémente
  // l'interface ElectricCar
  class Tesla implements ElectricCar {

  }








Introduction à la programmation orientée objet en Java

Ajouter des propriétés aux interfaces

  • Les propriétés suivent la convention UPPER_SNAKE_CASE
  • La valeur est définie immédiatement et ne peut pas changer
  • En coulisse, les propriétés sont public static final

  interface ElectricCar {
    // Implicitement public static final
    // Ne peut pas être modifiée
    int BATTERY_CAPACITY = 310;

  }




Introduction à la programmation orientée objet en Java

Ajouter des méthodes d'interface

  • Les interfaces servent surtout à définir des méthodes
  • Les méthodes sont par défaut abstract, sans code
  • Les interfaces peuvent avoir des méthodes concrètes avec code
  • Toutes les méthodes abstract doivent être implémentées dans la sous-classe
  interface ElectricCar {
    // Implicitement public static final
    // Ne peut pas être modifiée
    int BATTERY_CAPACITY = 310;


// Méthode abstraite par défaut void charge();
// Méthode concrète void autoPark() { }
}
class Tesla implements ElectricCar { // Doit être implémentée public void charge() { } }
Introduction à la programmation orientée objet en Java

Passons à la pratique !

Introduction à la programmation orientée objet en Java

Preparing Video For Download...