Comprendre le polymorphisme, le remplacement et la surcharge en Java
Lorsque l'on discute du polymorphisme en Java, il est crucial de faire la différence entre la surcharge et le remplacement. La surcharge implique de définir plusieurs méthodes avec le même nom mais des paramètres différents, tandis que la substitution se produit lorsqu'une sous-classe implémente une méthode de sa superclasse.
En ce qui concerne la question de la classification du polymorphisme comme surcharge ou substitution, aucune des deux n'est tout à fait correcte. Le polymorphisme intègre les deux concepts.
Classes de base abstraites et remplacement
Le polymorphisme est mieux illustré par les classes de base abstraites, qui déclarent des méthodes sans les implémenter. Les sous-classes définissent ensuite ces méthodes spécifiques à leur héritage. Ce processus est considéré comme primordial, car la sous-classe fournit sa propre implémentation pour la méthode héritée.
Par exemple, considérons la classe de base abstraite Human avec une méthode abstraite goPee(), représentant un humain générique allant aux toilettes. Les sous-classes Male et Female remplacent cette méthode par des implémentations spécifiques :
public abstract class Human { public abstract void goPee(); } public class Male extends Human { @Override public void goPee() { System.out.println("Stand Up"); } } public class Female extends Human { @Override public void goPee() { System.out.println("Sit Down"); } }
En créant une ArrayList contenant des instances de Human, nous pouvons invoquez la méthode goPee() de manière polymorphe, ce qui entraîne différentes sorties basées sur la sous-classe spécifique :
ArrayList<Human> group = new ArrayList<>(); group.add(new Male()); group.add(new Female()); for (Human person : group) person.goPee();
Cela illustre la polyvalence du polymorphisme en permettant l'utilisation d'une méthode commune à travers différents objets, malgré leurs implémentations spécifiques.
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!