13.2 Héritage et polymorphisme en Java : mot-clé 'extends'

L'héritage est l'un des piliers fondamentaux de la programmation orientée objet (POO). En Java, l'héritage permet à une classe d'hériter des champs et méthodes d'une autre classe, favorisant la réutilisation du code et la création d'une relation hiérarchique entre les classes. Le mot clé extends est utilisé pour établir cette relation d'héritage entre deux classes.

Concept d'héritage

En héritage, nous avons deux entités principales : la classe parent (ou superclasse) et la classe enfant (ou sous-classe). La classe enfant hérite des attributs et comportements de la classe parent, mais peut également définir ses propres membres et comportements. Cela signifie que la classe enfant est une spécialisation de la classe parent, où elle possède non seulement les traits de la classe parent, mais ajoute également ses propres caractéristiques uniques.

Utilisation du mot-clé 'extends'

Pour implémenter l'héritage en Java, nous utilisons le mot-clé extends dans la déclaration de la classe enfant. Prenons un exemple simple :

classe Animal { vide manger() { System.out.println("Cet animal mange"); } } la classe Chien étend Animal { écorce vide() { System.out.println("Le chien aboie"); } }

Dans l'exemple ci-dessus, Dog est une sous-classe de Animal. Cela signifie que Dog hérite de la méthode eat() de Animal et définit également sa propre méthode bark(). Un objet de classe Dog peut appeler les deux méthodes.

Polymorphisme et héritage

Le polymorphisme est un autre concept clé de la POO qui est étroitement lié à l'héritage. Cela signifie « plusieurs formes » et permet aux objets d'être traités comme des instances de leurs classes parentes plutôt que comme leurs classes réelles. En Java, cela est possible grâce à l'héritage et au fait qu'une variable de référence de superclasse peut pointer vers un objet de sous-classe. Cela permet aux méthodes d'être appelées de manière polymorphe.

Par exemple :

Animal monAnimal = new Dog(); monAnimal.eat(); // Appel de la méthode de la classe Animal // monAnimal.bark(); // Erreur de compilation : Le type animal n'a pas la méthode aboiement

Ici, la variable myAnimal est de type Animal, mais pointe vers une instance de Dog. Cela permet à la méthode eat() d'être appelée de manière polymorphe. Cependant, si nous essayons d'appeler bark() via myAnimal, nous recevrons une erreur de compilation, car le compilateur ne connaît que les méthodes définies dans le fichier Animal. classe de code >.

Remplacement de méthode

Une fonctionnalité importante de l'héritage en Java est la possibilité de remplacer les méthodes. Cela signifie qu'une sous-classe peut fournir sa propre implémentation d'une méthode déjà définie dans sa superclasse. Pour remplacer une méthode, la sous-classe doit définir une méthode avec la même signature que la méthode de la superclasse.

la classe Chat étend Animal { @Passer outre vide manger() { System.out.println("Le chat mange du poisson"); } }

Dans l'exemple ci-dessus, la classe Cat remplace la méthode eat() de la classe Animal. L'annotation @Override est facultative, mais il est recommandé de l'utiliser car elle indique au compilateur et aux développeurs que la méthode est un remplacement intentionnel.

Polymorphisme et remplacement de méthode

Lorsqu'une méthode est remplacée, le polymorphisme garantit que la version remplacée de la méthode est appelée lorsque l'objet est traité comme une instance de la superclasse. C'est un élément fondamental de ce qui rend le polymorphisme si puissant en Java.

Animal monChat = nouveau Chat(); monChat.eat(); // Appel de la méthode surchargée de la classe Cat

Dans ce cas, même si myCat est de type Animal, la méthode eat() qui est appelée est celle de la classe < code> Gato, car l'objet réel est une instance de Gato.

Considérations finales

L'héritage et le polymorphisme sont des concepts fondamentaux qui permettent aux classes Java d'être réutilisables, extensibles et gérables. Le mot-clé extends est la passerelle vers l'héritage, tandis que le polymorphisme permet de traiter uniformément des objets de différentes classes. Comprendre ces concepts est essentiel pour tout programmeur souhaitant maîtriser Java et développer des systèmes robustes et flexibles.

De plus, il est important d'être conscient des limites et des considérations lors de l'utilisation de l'héritage, comme le problème du « diamant » dans l'héritage multiple (que Java résout en n'autorisant pas l'héritage multiple de classes) et l'importance de l'encapsulation à maintenir. une hiérarchie de classes bien définies et sûres.

En bref, le lierreLa force et le polymorphisme sont des outils puissants qui, lorsqu'ils sont utilisés correctement, peuvent améliorer considérablement la conception et la maintenance des logiciels. Le mot-clé extends n'est que le début d'un vaste monde de possibilités qu'offre la programmation orientée objet.

Répondez maintenant à l’exercice sur le contenu :

Laquelle des affirmations suivantes concernant l’héritage et le polymorphisme en Java est correcte ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Héritage et polymorphisme en Java : remplacement de méthode

Page suivante de lebook gratuit :

87Héritage et polymorphisme en Java : remplacement de méthode

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte