11.12. Structure des classes et des objets en Java : surcharge et remplacement de méthodes

Java, étant un langage de programmation orienté objet, offre un cadre robuste pour définir des classes et des objets. Un concept fondamental dans ce contexte est celui de méthodes, qui sont essentiellement les actions que les objets peuvent effectuer. La flexibilité d'utilisation des méthodes est augmentée par deux concepts importants : la surcharge et la substitution de méthodes. Explorons chacun de ces concepts en détail.

Surcharge de méthode

La surcharge de méthodes est une fonctionnalité qui permet à un programmeur de définir plusieurs méthodes portant le même nom au sein d'une classe, à condition qu'elles aient des listes de paramètres différentes. La surcharge est utile lorsque vous souhaitez effectuer la même opération de différentes manières en fonction des arguments passés à la méthode.

Calculatrice de classe publique { // Surcharge avec deux paramètres public int ajouter (int a, int b) { renvoyer a + b ; } // Surcharge avec trois paramètres public int ajouter (int a, int b, int c) { renvoyer a + b + c ; } }

Dans l'exemple ci-dessus, la classe Calculator a deux méthodes appelées add. L’un d’eux ajoute deux nombres, tandis que l’autre en ajoute trois. Le compilateur Java distingue la méthode à appeler en fonction des arguments transmis lors de l'appel de méthode.

Remplacement de méthode

Le remplacement de méthode, en revanche, se produit lorsqu'une sous-classe redéfinit une méthode de la superclasse. La méthode substituée dans la sous-classe doit avoir la même signature, c'est-à-dire le même nom, le même type de retour et les mêmes paramètres que la méthode de la superclasse. La substitution est utilisée pour fournir une implémentation spécifique d'une méthode déjà fournie par sa classe parent.

classe Animal { public void émetSound() { System.out.println("L'animal fait un bruit"); } } la classe Chien étend Animal { // Remplacement de la méthode émetSound @Passer outre public void émetSound() { System.out.println("Le chien aboie"); } }

Dans l'exemple ci-dessus, la classe Dog remplace la méthode EmitSound de la classe Animal. Lorsqu'un objet de la classe Dog appelle EmitSound, la nouvelle implémentation est exécutée, pas celle de la classe Animal.

Règles de remplacement de méthode

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

  • La méthode de la sous-classe doit avoir la même signature que la méthode de la superclasse.
  • La méthode de la sous-classe doit être au moins aussi accessible que la méthode de la superclasse.
  • La méthode de la sous-classe ne peut pas lancer d'exceptions vérifiées plus larges que la méthode de la superclasse.
  • Si la méthode de la superclasse renvoie un type, la méthode de la sous-classe doit renvoyer le même type ou un sous-type (covariance).

Différences entre la surcharge et l'écrasement

Bien que les deux concepts permettent l'utilisation de méthodes portant le même nom, elles sont utilisées dans des contextes différents et ont des règles différentes :

    La
  • Surcharge se produit au sein de la même classe et est utilisée pour les méthodes qui effectuent la même opération de différentes manières, avec des paramètres différents.
  • Exposant se produit entre une superclasse et une sous-classe et est utilisé pour fournir une implémentation spécifique d'une méthode qui existe déjà dans la superclasse.

Mot clé super

Lorsque nous substituons une méthode, nous souhaitons parfois appeler la version de la méthode de la superclasse avant d'ajouter des fonctionnalités spécifiques à la sous-classe. Cela peut être fait en utilisant le mot-clé super.

la classe Chat étend Animal { @Passer outre public void émetSound() { super.emitSound(); // Appel de la méthode superclasse System.out.println("Le chat miaule"); } }

Dans cet exemple, la classe Cat remplace la méthode Sound, mais appelle également l'implémentation de la méthode par la classe Animal avant d'ajouter la sienne. fonctionnalité.

Conclusion

Comprendre la surcharge et le remplacement de méthodes est essentiel pour utiliser efficacement la programmation orientée objet en Java. Ces concepts permettent aux programmeurs d'écrire du code plus flexible et réutilisable, rendant les systèmes plus faciles à maintenir et à développer. En maîtrisant la surcharge et l'écrasement, vous serez en mesure de créer des classes qui se comportent de manière polymorphe, répondant différemment aux messages courants, ce qui est un principe fondamental de l'orientation objet.

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

_Laquelle des affirmations suivantes concernant les méthodes en Java est correcte ?

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

Vous avez raté! Essayer à nouveau.

Image de l'article Structure des classes et des objets en Java : mots-clés comme this et super

Page suivante de lebook gratuit :

71Structure des classes et des objets en Java : mots-clés comme this et super

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