Maison  >  Article  >  Java  >  Que sont les interfaces en Java et en quoi diffèrent-elles des classes abstraites ?

Que sont les interfaces en Java et en quoi diffèrent-elles des classes abstraites ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-06 18:16:02822parcourir

What are Interfaces in Java and how do they differ from Abstract Classes?

Comprendre les interfaces en Java

Une interface en Java est un type unique de classe abstraite qui définit des méthodes sans fournir d'implémentations. Il applique un contrat entre les classes qui l'implémentent, spécifiant les méthodes qu'elles doivent avoir, mais pas leur comportement.

Création d'une interface :

interface InterfaceName
{
    void interfaceMethodName();
}

Implémentation d'interfaces :

Les classes peuvent implémenter plusieurs interfaces. Les méthodes de chaque interface implémentée doivent être définies dans la classe.

public class ImplementingClass implements InterfaceA, InterfaceB
{
    public void interfaceMethodA() { /* Implementation */ }
    public void interfaceMethodB() { /* Implementation */ }
}

Différences clés par rapport aux classes abstraites :

  1. Implémentation de la méthode : Les interfaces ne peuvent pas implémenter de méthodes, contrairement aux classes abstraites.
  2. Héritage multiple : Les classes ne peuvent étendre qu'une seule classe abstraite mais peuvent implémenter plusieurs interfaces.

Avantages et limites des interfaces multiples :

Les interfaces multiples permettent une flexibilité et une réutilisation du code en définissant des fonctionnalités réutilisables sous forme de contrats distincts. Cependant, si deux interfaces déclarent des signatures de méthode contradictoires, cela peut entraîner des erreurs d'exécution.

مثال sur l'utilisation des interfaces :

interface InterfaceA
{
    void methodA();
}

interface InterfaceB
{
    void methodB();
}

public class ImplementingClass implements InterfaceA, InterfaceB
{
    public void methodA() { System.out.println("InterfaceA, MethodA"); }
    public void methodB() { System.out.println("InterfaceB, MethodB"); }
}

Dans cet exemple, ImplementingClass doit implémentez à la fois la méthodeA et la méthodeB conformément aux contrats définis respectivement par InterfaceA et InterfaceB.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn