Java Knowledge - sfrancois99/WIKI GitHub Wiki

Connaissances de bases pour les tests Java

1. Différence entre Overloading(surcharge) et Overriding(redéfinition)

What is difference between Overloading and Overriding in Java?
1- La surcharge a lieu au "Compile Time" alors que la redéfinition a lieu au "RunTime".
2- On peut surcharger une méthode dans la même classe alors qu'on ne peut redéfinir une méthode que dans une sous-classe.
3- On peut surcharger une méthode static alors qu'on ne peut pas redéfinir une méthode static. Le fait de déclarer la même méthode static dans une sous-classe va cacher la méthode de la super-classe.
4- Les méthodes surchargées sont liées à l'aide d'une liaison statique et le type de variable de référence est utilisé tandis que les méthodes redéfinies sont liées à l'aide d'une liaison dynamique basée sur l'objet réel.

1.1 Overloading(surcharge)

1- La première règle pour surcharger une méthode est de modifier sa signature.
2- Attention! Garder la même signature et simplement changer le type de retour va occasionner une erreur à la compilation : "duplicate method X in type Y".

1.2 Overriding(redéfinition)

1- Une méthode redéfinissante (sous-classe) ne peut pas envoyer une exception plus haute dans la hiérarchie que l'exception renvoyée par la méthode redéfinie (super-classe).
Exemple : Si l'erreur envoyée par la méthode de la super-classe est IOException alors il est interdit que la méthode de la sous-classe soit Exception.
2- Une méthode redéfinissante (sous-classe) ne peut pas réduire la visibilité de la méthode redéfinie (super-classe).
Exemple : Si la visibilité de la méthode redéfinie (super-classe) est public alors il est interdit que la visibilité de la méthode de la sous-classe soit protected ou package private.
3- Les méthodes private, static ou final ne peuvent pas être redéfinies.
4- Attention! Le type de retour d'une méthode redéfinissante doit être le même que celui de la méthode redéfinie (super-classe).

2. Questions CodinGame

3. Les bonnes pratiques

<<Home | <Back