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

L'héritage est l'un des piliers fondamentaux de la programmation orientée objet (POO), permettant la création de nouvelles classes basées sur des classes existantes. En Java, cela se fait avec le mot-clé extends. L'héritage favorise la réutilisation du code et la création d'une hiérarchie de classes. Associé à l'héritage, nous avons le concept de polymorphisme, qui, dans sa forme la plus simple, peut être compris comme la capacité d'un objet à être référencé de plusieurs manières.

Le polymorphisme se manifeste de deux manières principales en Java : la surcharge de méthode et le remplacement de méthode. Dans cette section, nous nous concentrerons sur le remplacement de méthode, qui est un mécanisme par lequel une sous-classe fournit une implémentation spécifique d'une méthode déjà fournie par l'une de ses superclasses.

Comprendre le remplacement de méthode

Le remplacement de méthode se produit lorsqu'une sous-classe en Java redéfinit une méthode de la superclasse. Pour qu’une méthode soit substituée, elle doit avoir la même signature dans la sous-classe et la superclasse, c’est-à-dire le même nom et les mêmes paramètres. La substitution est un outil puissant qui permet à une classe d'hériter des méthodes d'une classe parent tout en modifiant son comportement si nécessaire.

Règles de remplacement de méthode

Certaines règles importantes doivent être suivies pour remplacer correctement une méthode en Java :

  • La méthode de la sous-classe doit avoir le même nom, le même type de retour (ou sous-type) et les mêmes paramètres que la méthode de la classe parent.
  • La visibilité de la méthode substituée dans la sous-classe ne peut pas être plus restrictive que la visibilité de la méthode dans la classe parent.
  • La méthode remplacée ne peut pas lancer d'exceptions vérifiées plus larges que celles levées par la méthode de la classe parent.
  • Les méthodes marquées comme final ne peuvent pas être écrasées.
  • Les méthodes statiques ne sont pas remplacées, mais masquées, ce qui est un concept différent.

Exemple de remplacement de méthode

Prenons un exemple simple pour illustrer le remplacement de méthode :

classe Animal { public void émetSound() { System.out.println("L'animal fait un bruit."); } } la classe Chien étend Animal { @Passer outre public void émetSound() { System.out.println("Le chien aboie : Woof ! ​​Woof !"); } }

Dans l'exemple ci-dessus, la classe Dog remplace la méthode EmitSound de la classe Animal. Lorsqu'un objet de type Dog appelle la méthode emitSound, l'implémentation remplacée est exécutée, ce qui lui fait afficher "Le chien aboie : Woof ! ​​Woof !" au lieu de "L'animal fait un bruit.".

Utilisation de l'annotation @Override

L'annotation @Override est utilisée au-dessus de la méthode override. Bien que ce ne soit pas obligatoire, il est recommandé de l'utiliser car il indique au compilateur que vous avez l'intention de remplacer une méthode de superclasse. Si la méthode correspondante n'est pas trouvée dans la superclasse, le compilateur génère une erreur, évitant ainsi d'éventuelles fautes de frappe ou erreurs de signature de méthode.

Avantages du remplacement de méthode

Le remplacement de méthode permet aux développeurs de créer des systèmes plus flexibles et réutilisables. Il offre les avantages suivants :

  • Comportement spécifique : les sous-classes peuvent définir un comportement spécifique différent de celui défini par la superclasse.
  • Polymorphisme : la même méthode peut avoir plusieurs implémentations différentes, en fonction de l'objet référencé.
  • Maintenance simplifiée du code : si une méthode de superclasse est modifiée, seules les substitutions qui dépendent de l'implémentation d'origine doivent être modifiées.

Considérations finales

Le remplacement de méthode est une fonctionnalité essentielle en POO et Java. Il permet aux développeurs de créer des classes plus spécialisées qui se comportent de manière appropriée tout en conservant la cohérence et la réutilisabilité du code. En comprenant et en appliquant correctement la substitution de méthode, vous pouvez créer des systèmes robustes et facilement extensibles.

Enfin, il est important de se rappeler que la substitution de méthode n'est qu'un aspect du polymorphisme en Java. D'autres aspects, tels que la surcharge des méthodes et la mise en œuvre de l'interface, jouent également un rôle crucial dans la création d'applications complexes et flexibles. Avec de la pratique et une compréhension de ces concepts, vous serez bien équipé pour exploiter la puissance de la POO dans vos projets Java.

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

Laquelle des affirmations suivantes concernant le remplacement de méthode 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 : utilisation de « super » pour accéder aux membres de la superclasse 88

Page suivante de lebook gratuit :

Héritage et polymorphisme en Java : utilisation de « super » pour accéder aux membres de la superclasse

Temps de lecture estimé : 0 minutes

Téléchargez l'application pour obtenir une certification gratuite et écouter des cours en arrière-plan, même avec l'écran éteint.

+ 9 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

60 mille exercices
gratuits

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

Cours vidéo et livres
audio gratuits