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

Table des matières:

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

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

Vidéo: Différence entre l'héritage et l'interface en Java
Vidéo: JAVA (Intermédiaire) - 34 - Differences entre classes abstraites et Interfaces 2024, Novembre
Anonim

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 programmation orientée objet, structurée, 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 la POO. 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 qu'une interface consiste à implémenter des classes abstraites et un héritage multiple.

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

L'héritage peut permettre la réutilisabilité 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 d'une nouvelle classe à l'aide d'une ancienne classe est appelé héritage. L'ancienne classe est connue sous le nom de 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.

nom de la sous-classe de classe étend le nom de la 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.

classe publique 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.

classe publique 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 main, 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 en utilisant l'héritage.

public static void main(String args){

B obj=nouveau B();

obj.sub();

obj.sum();

}

Il existe différents types d'héritage. Il s'agit de l'héritage unique, de l'héritage multiple, de l'héritage multiniveau et de l'héritage hiérarchique. En héritage unique, il existe une classe de base et une classe dérivée. Dans l'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 l'héritage hiérarchique, il existe une classe de base et de nombreuses classes dérivées. Il existe un type spécial connu sous le nom d'héritage hybride. C'est une combinaison de deux ou plusieurs types d'héritage.

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

Figure 01: Héritage

Dans l'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 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 entraînera un problème d'ambiguïté. L'héritage 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 qu'une interface en Java ?

L'abstraction est un processus qui consiste à masquer les détails d'implémentation et à n'afficher que les fonctionnalités à l'utilisateur. L'abstraction peut être réalisée à 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. L'exemple d'une classe abstraite est le suivant.

classe abstraite A{

résumé vide abstrait();

}

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 doit étendre à la fois A et B. Mais 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 doit implémenter toutes les méthodes dans les interfaces A et B.

interface A{

void sum();

}

interface B{

void sub();

}

classe C implémente A, B{

public void sum(){

System.out.println(“Sommation”);

}

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.sub();

}

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

Une autre utilisation des interfaces est qu'elle fournit la sécurité. Reportez-vous au code ci-dessous.

interface A {

somme vide ();

}

classe B implémente A {

public void sum () {

System.out.println(“Sommation”);

}

public void multiplier () {

System.out.println(“Multiplication”);

}

}

Lors de la création d'un objet de B, il est possible d'appeler les deux méthodes somme () et multiplication (). Si le programmeur veut restreindre l'utilisation de la fonction multiplier (), c'est possible comme suit.

public static void main(String args){

A obj=nouveau B();

obj.sum();

}

A obj=nouveau B(); va créer un objet. Il est de type A et la mémoire est allouée comme B. Il est possible d'appeler sum() mais pas d'exécuter multiplier(). 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 la 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 pour dériver de nouvelles classes à partir des classes existantes. Interface est un mécanisme en POO pour implémenter l'abstraction et l'héritage multiple.
Utilisation
L'héritage permet de réutiliser le 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 multi-paradigme 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 existantes et que les interfaces consistent à implémenter des classes abstraites et un héritage multiple.

Télécharger la version PDF de Héritage 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

Conseillé: