"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comprendre les interfaces en Java – Un guide simple

Comprendre les interfaces en Java – Un guide simple

Publié le 2024-08-31
Parcourir:219

Understanding Interfaces in Java – A Simple Guide

Qu'est-ce qu'une interface ?

En Java, une interface est comme un contrat que vous définissez pour les classes. Lorsqu'une classe accepte une interface, elle promet de suivre les règles ou méthodes définies par cette interface. Considérez-le comme un ensemble d'instructions auxquelles la classe doit obéir.

Pourquoi utiliser des interfaces ?

Les interfaces sont très pratiques lorsque vous souhaitez que différentes classes suivent le même ensemble de règles mais les implémentent à leur manière. Imaginez un groupe d'animaux : un oiseau vole, un poisson nage et un chien court. Si vous souhaitez qu'ils "bougent" tous mais à leur manière unique, vous utiliserez une interface pour définir cette action de "déplacement".

Création d'une interface

Créons une interface simple appelée Movable :

public interface Movable {
    void move();  // Any class that implements Movable must define how to move
}

Cette interface n'a qu'une seule méthode, move(). Toute classe qui accepte cette interface doit avoir une méthode move().

Implémentation d'une interface

Créons quelques classes qui implémentent l'interface Movable :

public class Bird implements Movable {
    public void move() {
        System.out.println("The bird flies.");
    }
}

public class Fish implements Movable {
    public void move() {
        System.out.println("The fish swims.");
    }
}

Ici, la classe Bird et la classe Fish acceptent toutes deux l'interface Movable, mais elles ont chacune leur propre façon de se déplacer.

Interfaces multiples

Ce qui est intéressant à propos des interfaces, c'est qu'une classe peut en implémenter plusieurs. Disons que nous avons aussi une interface Soundable :

public interface Soundable {
    void makeSound();
}

Une classe Dog peut implémenter à la fois Movable et Soundable :

public class Dog implements Movable, Soundable {
    public void move() {
        System.out.println("The dog runs.");
    }

    public void makeSound() {
        System.out.println("The dog barks.");
    }
}

Cela signifie que notre chien peut à la fois bouger et émettre un son !

Interface vs classe abstraite

  • Héritage multiple : Une classe peut implémenter plusieurs interfaces, mais elle ne peut étendre qu'une seule classe abstraite.
  • Méthodes : Les interfaces ne peuvent avoir que des méthodes abstraites (dans les anciennes versions de Java), tandis que les classes abstraites peuvent avoir à la fois des méthodes abstraites et régulières.
  • Variables : Les interfaces peuvent avoir des constantes (variables finales statiques), mais elles ne peuvent pas avoir de variables d'instance.

Défi : essayez-le vous-même !

  1. Créez une interface appelée Playable avec une méthode play().
  2. Créez deux classes, Guitare et Piano, qui implémentent Playable.
  3. Écrivez du code pour créer des objets de ces classes et appelez la méthode play().

Conclusion

Les interfaces en Java sont un moyen puissant d'appliquer des règles à différentes classes tout en permettant à chaque classe d'implémenter ces règles à sa manière. Ils favorisent la flexibilité et la cohérence de votre code, ce qui facilite sa gestion et son extension.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/be11amer/understanding-interfaces-in-java-a-simple-guide-npk?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3