Polymorphisme, remplacement et surcharge en Java
Définition du polymorphisme
Lorsque l'on discute du polymorphisme dans Java, ni la surcharge ni la substitution, n'encapsulent pleinement son essence. Le polymorphisme est mieux compris à travers des classes de base abstraites ou des interfaces.
Classes de base abstraites et polymorphisme
Considérons une classe de base abstraite Human avec une méthode abstraite goPee(), définissant un concept qui n'est pas entièrement réalisable pour les humains tant qu'il n'est pas instancié dans ses sous-classes, telles que Male et Femelle.
public abstract class Human { ... public abstract void goPee(); }
Remplacement dans les sous-classes
Les sous-classes comme Male et Female implémentent la méthode goPee() en fonction de leurs caractéristiques spécifiques :
public class Male extends Human { ... @Override // Annotation indicating override public void goPee() { System.out.println("Stand Up"); } }
public class Female extends Human { ... @Override // Annotation indicating override public void goPee() { System.out.println("Sit Down"); } }
Comportement polymorphe
Avec ça configuration, un tableau d’objets Humains peut contenir à la fois des instances masculines et féminines. Lors de l'appel de goPee() sur tous les humains, la méthode surchargée spécifique à chaque sous-classe est exécutée, mettant en valeur un comportement polymorphe :
public static void main(String[] args) { ArrayList<Human> group = new ArrayList<>(); group.add(new Male()); group.add(new Female()); // Polymorphism: Execute overridden goPee() in each subclass for (Human person : group) person.goPee(); }
Conclusion
Le polymorphisme se manifeste à travers la capacité d'objets de classes différentes pour répondre différemment au même appel de méthode. Il exploite l'héritage et le remplacement de méthode pour obtenir cette flexibilité.
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!