Différence entre l'héritage et l'interface en Java

Différence clé - Héritage vs Interface en Java
 

Java est un langage de programmation développé par Sun Microsystems. Java peut être utilisé pour développer diverses applications. C'est un langage multi-paradigme qui prend en charge la structure orientée objet, etc. Le principal avantage de Java est qu'il prend en charge la programmation orientée objet (OOP). Le programmeur peut créer des classes et des objets. La POO repose sur quatre piliers. Ce sont l'héritage, le polymorphisme, l'abstraction et l'encapsulation. L'héritage et les interfaces sont liés à la POO. le différence clé entre l'héritage et l'interface est que l'héritage consiste à dériver de nouvelles classes à partir de classes existantes et une interface à implémenter des classes abstraites et l'héritage multiple.

CONTENU

1. Vue d'ensemble et différence clé
2. Qu'est-ce que l'héritage en Java?
3. Qu'est-ce que l'interface en Java?
4. Similarités entre l'héritage et l'interface en Java
5. Comparaison côte à côte - Héritage vs Interface en Java sous forme tabulaire
6. Résumé

Qu'est-ce que l'héritage en Java??

L'héritage peut permettre la réutilisation du code. L'héritage permet de réutiliser les attributs et les méthodes d'une classe existante. Le mécanisme de dérivation de la nouvelle classe à l'aide de l'ancienne classe s'appelle l'héritage. L'ancienne classe est appelée classe parent ou super classe. La classe dérivée est appelée classe enfant ou sous-classe..

La syntaxe de l'héritage Java est la suivante.

class nom_sous_classe étend nom_superclasse

déclaration de variable;

déclaration de méthode;

Le concept d'héritage peut être expliqué à l'aide de l'exemple suivant. Supposons qu'il existe une classe appelée A comme suit.

public class A

public void sum ()

System.out.println («Sum»);

Si nous voulons ajouter une nouvelle méthode sans changer la classe existante, nous pouvons le faire comme suit.

public classe B

public void sub ()

System.out.println (“Sub”);

Le programmeur peut utiliser l'héritage pour utiliser la classe A sum ().

La classe publique B étend la classe A

public void sub ()

System.out.println (“Sub”);

Dans la fonction principale, il est possible de créer un objet de B et d'appeler sub (), qui appartient à la classe B, et sum (), qui appartient à la classe A, à l'aide de l'héritage..

public static void main (String [] args)

B obj = nouveau B ();

obj ();

obj.sum ();

Il existe différents types d'héritage. Ce sont l'héritage simple, l'héritage multiple, l'héritage à plusieurs niveaux et l'héritage hiérarchique. Dans héritage unique, il existe une classe de base et une classe dérivée. Dans héritage à plusieurs niveaux, il existe trois classes, à savoir la classe de base, la classe intermédiaire et la classe dérivée. La classe intermédiaire hérite de la classe de base et la classe dérivée hérite de la classe intermédiaire. Dans héritage hiérarchique, il existe une classe de base et de nombreuses classes dérivées. Il existe un type spécial appelé Héritage hybride. C’est une combinaison de deux types d’héritage ou plus.

Figure 01: Héritage

Dans Héritage multiple il existe plusieurs classes de base et une classe dérivée. Supposons que les classes A et B sont les classes de base. La classe C est la classe dérivée. Si les deux classes A et B ont la même méthode et que le programmeur appelle cette méthode à partir de la classe dérivée, cela posera un problème d'ambiguïté. L'héritage de deux classes peut provoquer une erreur lors de la compilation. Par conséquent, l'héritage multiple n'est pas pris en charge en Java. Une interface peut être utilisée pour résoudre ce problème.

Qu'est-ce que l'interface en Java??

L'abstraction est un processus consistant à masquer les détails de la mise en œuvre et à afficher uniquement les fonctionnalités pour l'utilisateur. L'abstraction peut être obtenue à l'aide de classes abstraites ou d'interfaces. Une méthode abstraite est une méthode sans implémentation. Une classe avec au moins une méthode abstraite est une classe abstraite. Voici un exemple de classe abstraite.

classe abstraite A

somme vide abstraite ();

Supposons qu'il existe deux classes abstraites comme A et B. Pour implémenter les méthodes abstraites de A et B, une nouvelle classe C est créée. Ensuite, la classe C devrait étendre A et B. Cependant, l'héritage multiple n'est pas pris en charge en Java. Par conséquent, devrait utiliser des interfaces. Les interfaces peuvent être utilisées pour déclarer des méthodes, mais il n'est pas possible de définir des méthodes. Il n'est pas possible de créer un objet à l'aide d'interfaces. La classe C devrait implémenter toutes les méthodes dans les interfaces A et B.

interface A

somme nulle ();

interface B

vide sous ();

la classe C implémente A, B

public void sum ()

System.out.println («Summation»);

public void sub ()

System.out.println («Soustraction»);

Maintenant, dans le programme principal, il est possible de créer un objet de C et d’appeler les deux méthodes.

public static void main (String [] args)

C obj = nouveau C ();

obj.sum ();

obj ();

Ainsi, les interfaces peuvent utiliser pour implémenter l'héritage multiple.

Une autre utilisation des interfaces est la sécurité. Référez-vous le code ci-dessous.

interface A

somme nulle ();

la classe B implémente A

public void sum ()

System.out.println («Summation»);

public void multiply ()

System.out.println («multiplication»);

Lors de la création d'un objet de B, il est possible d'appeler les deux méthodes sum () et multiply (). Si le programmeur veut restreindre l'utilisation de la fonction multiply (), il est possible de:.

public static void main (String [] args)

A obj = new B ();

obj.sum ();

A obj = new B (); va créer un objet. Il est de type A et la mémoire est allouée en tant que B. Il est possible d'appeler sum () mais ne peut pas exécuter multiply (). Cette restriction est faite en utilisant des interfaces.

Quelles sont les similitudes entre l'héritage et l'interface en Java?

  • Les deux concepts sont liés à la programmation orientée objet
  • Les deux représentent une relation IS-A.

Quelle est la différence entre l'héritage et l'interface en Java?

Héritage vs Interface en Java

L'héritage est un concept POO permettant de dériver de nouvelles classes à partir des classes existantes.. L'interface est un mécanisme de la programmation orientée objet permettant d'implémenter l'abstraction et l'héritage multiple.
Usage
L'héritage permet la réutilisation du code. Les interfaces fournissent une abstraction et un héritage multiple.

Résumé - Héritage vs Interface en Java

Java est un langage de programmation multi-paradigmes qui prend en charge la programmation orientée objet. L'héritage et les interfaces sont liés à la programmation orientée objet. La différence entre l'héritage et l'interface est que l'héritage consiste à dériver de nouvelles classes à partir de classes et d'interfaces existantes et à implémenter des classes abstraites et un héritage multiple..

Téléchargez la version PDF de Inheritance vs Interface en Java

Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne, conformément à la note de citation. Veuillez télécharger la version PDF ici Différence entre l'héritage et l'interface en Java

Référence:

1.Point, tutoriels. "Héritage Java.", Tutoriels Point, 31 octobre 2017. Disponible ici 
2.Point, tutoriels. "Interfaces Java." , Tutoriels Point, 31 octobre 2017. Disponible ici 

Courtoisie d'image:

1.'CPT-OOP-inheritance-bikes 'Par Pluke - Travail personnel, (Domaine public) via Wikimedia Commons