Héritage dans les POO Java avec l’exemple

Quoi est l’héritage?

L’héritage est un mécanisme dans lequel une classe acquiert la propriété d’une autre classe. Par exemple, un enfant hérite des traits de ses parents. Avec l’héritage, nous pouvons réutiliser les champs et les méthodes de la classe existante. Par conséquent, l’héritage facilite la réutilisation et est un concept important de POO.

Dans ce tutoriel, vous apprendrez-

  • Types d’héritage
  • L’héritage en Java
  • Java Exemple d’héritage
  • Super mot-clé
  • Apprendre l’héritage dans la POO avec l’exemple

Types d’héritage

Il existe Différents types d’héritage en Java:

Héritage unique:

En héritage unique, une classe étend une autre classe (une seule classe).

Héritage unique

Dans le diagramme ci-dessus, la classe B ne s’étend que la classe A. La classe A est une super classe et la classe B est une sous-classe.

Héritage multiple:

Dans l’héritage multiple, une classe s’étendant plus d’une classe. Java ne prend pas en charge l’héritage multiple.

Héritage multiple

Comme indiqué dans le diagramme ci-dessus, la classe C étend la classe A et la classe B.

Héritage à plusieurs niveaux:

Dans l’héritage à plusieurs niveaux, une classe peut hériter d’une classe dérivée. Par conséquent, la classe dérivée devient la classe de base de la nouvelle classe.

Héritage à plusieurs niveaux

Comme le montre le diagramme, la classe C est une sous-classe de B et B est une de la sous-classe Classe A.

Héritage hiérarchique:

Dans l’héritage hiérarchique, une classe est héritée par de nombreuses sous-classes.

Héritage hiérarchique

Comme dans l’exemple ci-dessus, les classes B, C et D héritent de la même classe A.

Héritage hybride:

L’héritage hybride est une combinaison d’héritage unique et multiple.

Héritage hybride

Comme dans l’exemple ci-dessus, tous les membres publics et protégés de la classe A sont hérité de la classe D, d’abord via la classe B et ensuite via la classe C.

Remarque: Java ne prend pas en charge l’héritage hybride / multiple

l’héritage en Java

JAVA INHERITANCE est un mécanisme dans lequel une classe acquiert la propriété d’une autre classe. En Java, lorsqu’une relation « Is-A » existe entre deux classes, nous utilisons l’héritage. La classe parente est appelée un super classe et la classe héritée est appelée une sous-classe. Le mot-clé extends est utilisé par la sous-classe pour hériter des fonctionnalités de la super classe.

Héritage est important car il conduit à la réutilisation du code.

Syntaxe d’héritage Java:

class subClass extends superClass { //methods and fields } 

Héritage Java E xample

Super mot-clé

Le super mot-clé est similaire au mot-clé « this ».

Le mot-clé super peut être utilisé pour accéder à n’importe quel membre de données ou méthodes de la classe parent.

Super mot-clé peut être utilisé au niveau de la variable, de la méthode et du constructeur.

Syntaxe:

super.<method-name>();

Apprendre l’héritage dans la POO avec l’exemple

Considérons la même application bancaire de l’exemple précédent .

Nous sommes censés ouvrir deux types de comptes différents, l’un pour la sauvegarde et l’autre pour la vérification (également appelé courant).

Comparons et étudions comment nous pouvons aborder le codage dans une perspective de programmation structurée et orientée objet. Approche structurelle: En programmation structurée, nous allons créer deux fonctions –

  1. L’une pour retirer
  2. Et l’autre pour l’action de dépôt.

Depuis le le fonctionnement de ces fonctions reste le même dans tous les comptes.

Approche de la POO: Tout en utilisant l’approche de programmation POO. Nous créerions deux classes.

  • Chacun ayant la mise en œuvre des fonctions de dépôt et de retrait.
  • Cela entraînera un travail supplémentaire redondant.

Demande de modification du logiciel

Maintenant, il y a un changement dans la spécification des exigences pour quelque chose qui est si courant dans l’industrie du logiciel. Vous êtes censé ajouter la fonctionnalité Compte bancaire privilégié avec facilité de découvert. Pour un fond, le découvert est une facilité où vous pouvez retirer un montant supérieur au solde disponible de votre compte.

Approche structurelle: Par approche fonctionnelle, je dois modifier ma fonction de retrait, qui est déjà testé et référencé. Et ajouter une méthode comme ci-dessous prendra en charge les nouvelles exigences.

Approche de la POO: En utilisant l’approche de la POO, il vous suffit de écrire une nouvelle classe avec une implémentation unique de la fonction de retrait. Nous n’avons jamais touché au morceau de code testé.

Une autre demande de changement

Et si l’exigence change davantage? Aime ajouter un compte de carte de crédit avec sa propre exigence de dépôts.

Approche structurelle: en utilisant une approche structurelle, vous devez changer le code de dépôt testé de nouveau.

L’approche de la POO: mais en utilisant une approche orientée objet, vous créer une nouvelle classe avec son implémentation unique de la méthode de dépôt (surligné en rouge dans l’image ci-dessous).

Donc, même si la programmation structurelle semble être une approche facile au départ, la POO gagne à long terme.

Avantage de l’héritage dans les POO

Mais on peut soutenez que dans toutes les classes, vous avez des morceaux de code répétés.

Pour surmonter cela, vous créez une classe parent, dites « compte » et implémentez la même fonction de dépôt et de retrait. Et rendre les classes enfants héritées de la classe « compte ». Pour qu’ils aient accès aux fonctions de retrait et de dépôt dans la classe de compte.

Les fonctions ne doivent pas être implémentées individuellement. Il s’agit de l’héritage en java. .

Write a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *