Héritage dans les POO Java avec exemple

Table des matières:

Anonim

Qu'est-ce que 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 didacticiel, vous apprendrez-

  • Types d'héritage
  • Héritage en Java
  • Exemple d'héritage Java
  • Super mot-clé
  • Apprenez 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:

Dans l'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 qu'à 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 étendant plusieurs classes. Java ne prend pas en charge l'héritage multiple.

Héritage multiple

Comme le montre 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 sous-classe de la 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és de la classe D, d'abord via la classe B et deuxièmement via la classe C.

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

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 une 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.

L'héritage est important car il conduit à la réutilisabilité du code.

Syntaxe d'héritage Java:

class subClass extends superClass{//methods and fields}

Exemple d'héritage Java

class Doctor {void Doctor_Details() {System.out.println("Doctor Details… ");}}class Surgeon extends Doctor {void Surgeon_Details() {System.out.println("Surgen Detail… ");}}public class Hospital {public static void main(String args[]) {Surgeon s = new Surgeon();s.Doctor_Details();s.Surgeon_Details();}}

Super mot-clé

Le mot clé super 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.

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

Syntaxe:

super.();

Apprenez l'héritage dans la POO avec l'exemple

Considérez 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 l'épargne 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. Un à retirer
  2. Et l'autre pour l'action de dépôt.

Étant donné que le fonctionnement de ces fonctions reste le même dans tous les comptes.

Approche de la POO : tout en utilisant l'approche de programmation des 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 changement de 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 une fonctionnalité de compte bancaire privilégié avec facilité de découvert. Pour rappel, le découvert est une installation où vous pouvez retirer un montant supérieur au solde disponible de votre compte.

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

L'approche de la POO: En utilisant l'approche de la POO, il vous suffit d'é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 unique de dépôts .

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

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

Ainsi, même si la programmation structurelle semble être une approche facile au départ, la POO l'emporte sur le long terme.

Avantage de l'héritage dans les POO

Mais on peut dire 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 nécessairement être implémentées individuellement. Il s'agit de l' héritage en java. .