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 existe 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. La principale 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 qu'une interface consiste à implémenter des classes abstraites et l'héritage multiple.
CONTENU
1. Présentation et différence clé
2. Qu'est-ce que l'héritage en Java
3. Qu'est-ce que l'interface en Java
4. Similitudes 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 d'une nouvelle classe à l'aide de l'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.
class subclass_name étend superclass_name {
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 («Somme»);
}
}
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 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 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 à plusieurs niveaux et de l'héritage hiérarchique. Dans l'héritage simple, 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 appelé héritage hybride. C'est une combinaison de deux ou plusieurs types d'héritage.
Figure 01: Héritage
Dans l'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 à partir de la classe dérivée, cela provoquera 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 dans Java. Une interface peut être utilisée pour surmonter ce problème.
Qu'est-ce que l'interface en Java?
L'abstraction est un processus consistant à masquer les détails de l'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. 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 à 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 devrait implémenter toutes les méthodes des interfaces A et B.
interface A {
somme vide ();
}
interface B {
void sub ();
}
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.sub ();
}
Ainsi, les interfaces peuvent être utilisées pour implémenter l'héritage multiple.
Une autre utilisation des interfaces est qu'elles assurent la sécurité. Reportez-vous au code ci-dessous.
interface A {
somme vide ();
}
la classe B implémente A {
public void sum () {
System.out.println («Summation»);
}
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 sum () et multiply (). Si le programmeur veut restreindre l'utilisation de la fonction multiply (), c'est possible comme suit.
public static void main (String args) {
A obj = nouveau B ();
obj.sum ();
}
A obj = nouveau 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 la relation IS-A.
Quelle est la différence entre l'héritage et l'interface en Java?
Diff article au milieu avant la table
Héritage vs interface en Java |
|
L'héritage est un concept POO pour dériver de nouvelles classes à partir des classes existantes. | L'interface est un mécanisme dans la POO pour implémenter l'abstraction et l'héritage multiple. |
Usage | |
L'héritage permet la réutilisation 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 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 implémentent des classes abstraites et l'héritage multiple.
Téléchargez la version PDF de l'héritage vs interface en 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 en Java