Tutoriels Java

Java ACCUEIL Introduction à Java Java Démarrer Syntaxe Java Commentaires Java Variables Java Types de données Java Conversion de type Java Opérateurs Java Chaînes Java Mathématiques Java Booléens Java Java Si... Sinon Commutateur Java Java While Boucle Java pour la boucle Java Pause/Continuer Tableaux Java

Méthodes Java

Méthodes Java Paramètres de méthode Java Surcharge de méthode Java Portée Java Récursivité Java

Cours Java

POO Java Classes/Objets Java Attributs de classe Java Méthodes de classe Java Constructeurs Java Modificateurs Java Encapsulation Java Paquets Java/API Héritage Java Polymorphisme Java Classes internes Java Abstraction Java InterfaceJava Énumérations Java Entrée utilisateur Java Data Java Java ArrayList Liste liée Java Java HashMap Jeu de hachage Java Itérateur Java Classes d'encapsulation Java Exception Java Java RegEx Fils Java Java Lambda

Gestion des fichiers Java

Fichiers Java Java créer/écrire des fichiers Fichiers de lecture Java Java supprimer des fichiers

Comment Java

Additionner deux nombres

Référence Java

Mots clés Java Méthodes de chaîne Java Méthodes mathématiques Java

Exemples Java

Exemples Java Compilateur Java Exercices Java Quizz Java Certificat Java


InterfaceJava _


Interfaces

Une autre façon de réaliser l'abstraction en Java consiste à utiliser des interfaces.

An interfaceest une " classe abstraite " complètement utilisée pour regrouper des méthodes liées avec des corps vides :

Exemple

// interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void run(); // interface method (does not have a body)
}

Pour accéder aux méthodes d'interface, l'interface doit être "implémentée" (un peu comme héritée) par une autre classe avec le mot- implements clé (au lieu de extends). Le corps de la méthode d'interface est fourni par la classe "implement":

Exemple

// Interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface
class Pig implements Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
  public void sleep() {
    // The body of sleep() is provided here
    System.out.println("Zzz");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig();  // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

Remarques sur les interfaces :

  • Comme les classes abstraites , les interfaces ne peuvent pas être utilisées pour créer des objets (dans l'exemple ci-dessus, il n'est pas possible de créer un objet "Animal" dans la MyMainClass)
  • Les méthodes d'interface n'ont pas de corps - le corps est fourni par la classe "implémenter"
  • Lors de l'implémentation d'une interface, vous devez surcharger toutes ses méthodes
  • Les méthodes d'interface sont par défaut abstractet public
  • Les attributs d'interface sont par défaut public, staticetfinal
  • Une interface ne peut pas contenir de constructeur (car elle ne peut pas être utilisée pour créer des objets)

Pourquoi et quand utiliser les interfaces ?

1) Pour assurer la sécurité - masquez certains détails et affichez uniquement les détails importants d'un objet (interface).

2) Java ne supporte pas "l'héritage multiple" (une classe ne peut hériter que d'une superclasse). Cependant, cela peut être réalisé avec des interfaces, car la classe peut implémenter plusieurs interfaces. Remarque : Pour implémenter plusieurs interfaces, séparez-les par une virgule (voir l'exemple ci-dessous).


Interfaces multiples

Pour implémenter plusieurs interfaces, séparez-les par une virgule :

Exemple

interface FirstInterface {
  public void myMethod(); // interface method
}

interface SecondInterface {
  public void myOtherMethod(); // interface method
}

class DemoClass implements FirstInterface, SecondInterface {
  public void myMethod() {
    System.out.println("Some text..");
  }
  public void myOtherMethod() {
    System.out.println("Some other text...");
  }
}

class Main {
  public static void main(String[] args) {
    DemoClass myObj = new DemoClass();
    myObj.myMethod();
    myObj.myOtherMethod();
  }
}