Surcharge de méthodes : restriction de Java sur les méthodes équivalentes au remplacement
Java interdit la présence de deux méthodes au sein d'une classe avec un effacement identique malgré des paramètres différents genres. Cette contrainte provient des efforts du langage pour maintenir la compatibilité avec le code existant en utilisant des types bruts.
L'erreur de compilation survient lorsque deux méthodes avec des types de paramètres différents, tels que add(Set Cette restriction existe pour éviter les conflits dans les situations où une classe hérite d'une superclasse utilisant raw genres. Dans de tels cas, le compilateur doit traiter les types bruts comme des équivalents de remplacement aux types générés pour garantir un remplacement de méthode approprié. Par exemple, considérons une classe héritée CollectionConverter avec la méthode toList(Collection c) utilisant des types bruts. Si vous étendez cette classe et ajoutez une nouvelle méthode àList(Collection Cependant, si vous ajoutez plus tard par erreur une troisième méthode àList( Collection c) à la sous-classe, le compilateur est confronté à une ambiguïté car il ne peut pas déterminer quelle méthode remplacer. Pour résoudre cette ambiguïté, Java applique une règle interdisant plusieurs méthodes équivalentes à un remplacement. Il est important de noter que cette restriction n'est pas une limitation de l'effacement mais un choix de conception fait pour prendre en charge la compatibilité avec le code existant. Avec l'ajout de génériques aux identifiants de méthode, garantir l'unicité aurait été possible au moment de la compilation sans avoir besoin de cette règle. Néanmoins, Java maintient cette restriction par souci de compatibilité. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!