Java - 6.9 Surcharge et redéfinition en Java : overloading et overriding

La surcharge et la redéfinition se ressemblent par le nom, mais elles ne suivent pas les mêmes règles. Cette leçon les compare, puis détaille les conditions pour qu'une méthode redéfinisse correctement une méthode héritée. Elle se termine par l'appel de la méthode du parent.

La surcharge dans une même classe

La surcharge consiste à définir plusieurs méthodes dans une même classe, avec le même nom mais des paramètres différents.

Java choisit la méthode à appeler en se basant sur le nom, le type des paramètres et la liste des arguments. La vidéo rappelle que la surcharge est aussi appelée polymorphisme.

La redéfinition dans une classe fille

La redéfinition consiste à écrire, dans une classe fille, une méthode avec la même signature que la méthode de la classe mère : même nom et mêmes arguments.

La méthode redéfinie ne peut pas réduire la visibilité. Si la méthode du parent est publique, l'enfant ne peut pas la rendre privée. Les méthodes privées, les méthodes statiques et les constructeurs ne peuvent pas être redéfinis.

Appeler la méthode du parent

Pour appeler la version de la classe mère depuis la classe fille, on utilise le mot-clé super suivi du nom de la méthode.

En résumé

La surcharge concerne des méthodes de même nom avec des paramètres différents, dans une même classe. La redéfinition reprend la signature d'une méthode héritée, sans réduire sa visibilité. Le mot-clé super permet d'appeler la version du parent.

Points clés

  • La surcharge utilise le même nom avec des paramètres différents.
  • La redéfinition reprend le même nom et les mêmes arguments.
  • La redéfinition ne peut pas réduire la visibilité de la méthode.
  • Les méthodes privées, statiques et les constructeurs ne se redéfinissent pas.
  • Super suivi du nom de la méthode appelle la version du parent.

Questions fréquentes

Quelle différence entre surcharge et redéfinition ?

La surcharge se fait dans une même classe avec des paramètres différents. La redéfinition se fait dans une classe fille avec la même signature.

Peut-on rendre privée une méthode redéfinie ?

Non, la vidéo précise que la visibilité ne peut pas être réduite. Une méthode publique du parent doit rester publique dans l'enfant.

Pourquoi les méthodes privées ne sont-elles pas redéfinies ?

La vidéo indique seulement qu'elles ne peuvent pas être redéfinies, comme les constructeurs. Elle ne développe pas la raison.