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

Différence entre l'héritage et l'interface dans 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. Il s'agit d'une langue multi-paradigme qui prend en charge les objets, structurés, etc. Le principal avantage de Java est qu'il prend en charge la programmation orientée objet (POO). Le programmeur peut créer des classes et des objets. Il y a quatre piliers dans OOP. Ils sont l'héritage, le polymorphisme, l'abstraction et l'encapsulation. L'héritage et les interfaces sont liées à la POO. Le différence clé entre l'héritage et l'interface est que L'héritage consiste à dériver de nouvelles classes des classes existantes et une interface consiste à implémenter des classes abstraites et un héritage multiple.

CONTENU

1. Aperçu et différence clé
2. Qu'est-ce que l'héritage en Java
3. Qu'est-ce que l'interface dans Java
4. Similitudes entre l'héritage et l'interface dans 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 réaliser la réutilisation du code. L'héritage aide à réutiliser les attributs et les méthodes d'une classe existante. Le mécanisme de dérivation de la nouvelle classe utilisant une ancienne classe est appelé héritage. L'ancienne classe est connue sous le nom de classe parent ou de super classe. La classe dérivée est appelée classe infantile ou sous-classe.

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

class subclass_name étend superclass_name

Déclaration variable;

Déclaration de méthode;

Le concept d'héritage peut être expliqué en utilisant l'exemple suivant. Supposons qu'il y a une classe appelée A As suit.

classe publique a

public void sum ()

Système.dehors.println («somme»);

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

classe publique B

public void sub ()

Système.dehors.println («sub»);

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

La classe publique B étend la classe A

public void sub ()

Système.dehors.println («sub»);

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

public static void main (String [] args)

B obj = new b ();

obj.sous();

obj.somme();

Il existe différents types d'héritage. Ils sont un héritage unique, un héritage multiple, un héritage à plusieurs niveaux et un héritage hiérarchique. Dans héritage unique, il y a une classe de base et une classe dérivée. Dans héritage à plusieurs niveaux, Il y a 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 y a 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 ou plus d'héritage.

Figure 01: Héritage

Dans Héritage multiple Il existe de nombreuses 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 classes A et B ont la même méthode et que le programmeur appelle cette méthode de la classe dérivée, cela entraînera un problème d'ambiguïté. Hériter de deux classes peut provoquer une erreur de compilation. Par conséquent, l'héritage multiple n'est pas pris en charge en Java.  Une interface peut être utilisée pour surmonter ce problème.

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

L'abstraction est un processus pour cacher les détails de l'implémentation et afficher uniquement les fonctionnalités à l'utilisateur. L'abstraction peut être obtenue en utilisant des classes abstraites ou des 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. Un exemple de classe abstrait est le suivant.

Résumé Classe A

abstrait vide sum ();

Supposons qu'il existe deux classes abstraites en tant que A et B. Pour implémenter des méthodes abstraites de A et B, une nouvelle classe C est créée. Alors la classe C devrait étendre les deux et B., Mais l'héritage multiple n'est pas pris en charge dans Java. Par conséquent, devrait utiliser les 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 en utilisant des interfaces. La classe C doit implémenter toutes les méthodes dans l'interface A et B.

interface a

vide sum ();

interface b

vide sub ();

La classe C implémente a, b

public void sum ()

Système.dehors.println («Sommation»);

public void sub ()

Système.dehors.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 = new C ();

obj.somme();

obj.sous();

Ainsi, les interfaces peuvent utiliser pour implémenter plusieurs héritage.

Une autre utilisation des interfaces est qu'elle assure la sécurité. Référer le code ci-dessous.

interface a

vide sum ();

La classe B implémente un

public void sum ()

Système.dehors.println («Sommation»);

public void multiply ()

Système.dehors.println («multiplication»);

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

public static void main (String [] args)

A obj = new b ();

obj.somme();

A obj = new b (); Créera un objet. Il est de type A et la mémoire est allouée comme b. Il est possible d'appeler sum () mais ne peut pas exécuter multiply (). Cette restriction se fait à l'aide d'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 dans Java?

Interface de l'héritage vs en java

L'héritage est un concept POO pour dériver de nouvelles classes des classes existantes. L'interface est un mécanisme dans la POO pour mettre en œuvre l'abstraction et l'héritage multiple.
Usage
L'héritage offre une réutilisabilité du code. Les interfaces fournissent l'abstraction et l'héritage multiple.

Résumé - Héritage vs interface en java

Java est un langage de programmation à plusieurs 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 est de mettre en œuvre des classes abstraites et de l'héritage multiple.

Téléchargez la version PDF de l'interface héritée vs dans Java

Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne selon la note de citation. Veuillez télécharger la version PDF ici différence entre l'héritage et l'interface dans Java

Référence:

1.Point, tutoriels. «L'héritage de Java.», Tutorials Point, 31 octobre. 2017. Disponible ici 
2.Point, tutoriels. «Interfaces Java.», Tutorials Point, 31 octobre. 2017. Disponible ici 

Image gracieuseté:

1.«CPT-oop-héritage-vélos» par Pluke - propre travail, (domaine public) via Commons Wikimedia