Le remplacement et la surcharge de méthodes sont différentes manifestations du polymorphisme Java. La substitution est une manifestation du polymorphisme entre le parent et les sous-classes, tandis que la surcharge est une manifestation du polymorphisme dans une classe.
Si une méthode définie dans une sous-classe a le même nom et les mêmes paramètres que sa classe parent, on dit que la méthode est prioritaire. Lorsqu'un objet d'une sous-classe utilise cette méthode, il appellera la définition de la sous-classe. Pour cela, la définition de la classe parent semble être "protégée".
Si plusieurs méthodes portant le même nom sont définies dans une classe et qu'elles peuvent avoir des nombres de paramètres différents, des types de paramètres différents ou des ordres de paramètres différents, on parle de surcharge de méthodes. Il ne peut pas être surchargé par des autorisations d'accès, des types de retour ou des exceptions levées.
1. Surcharge de méthode (surcharge)
Concept : Pour faire simple : la surcharge de méthodes correspond à plusieurs méthodes d'implémentation de la même fonction d'une classe. La méthode utilisée dépend des paramètres donnés par l'appelant.
Choses à noter :
(1) Les noms des méthodes sont les mêmes (2) Les types de paramètres, le nombre et l'ordre des méthodes ne sont pas différents dans au moins l'une d'entre elles (3) Les types de retour des méthodes peuvent être différents (4) Les modificateurs de les méthodes peuvent être différentes. Si seuls les types de retour sont différents, cela ne peut pas constituer. Si la surcharge n'a que des symboles modificateurs d'accès au contrôle différents, elle ne peut pas constituer une surcharge.
Une méthode surchargée peut modifier le type de valeur de retour.
2. Remplacement de méthode (remplacement)
Concept : Pour faire simple : la couverture de méthode signifie que la sous-classe a une méthode qui a le même nom, le même type de retour et les mêmes paramètres qu'une méthode de la classe parent. Ensuite, nous disons que la méthode de la sous-classe remplace la méthode du parent. classe.
Remarque : Il existe de nombreuses conditions pour la couverture de la méthode. De manière générale, il y a deux points auxquels vous devez prêter attention :
(1) Le type de retour, les paramètres et le nom de la méthode de la sous-classe doivent être exactement les mêmes que le type de retour, les paramètres et le nom de la méthode de la classe parent, sinon une erreur de compilation se produira.
(2) Les méthodes de sous-classe ne peuvent pas réduire les droits d'accès des méthodes de classe parent (l'inverse est possible)
exemple:
Remplacer l'instance