Façons d'implémenter le polymorphisme en Java :
1. Implémentation de l'interface
2. ;
3. Surcharge de méthode dans la même classe.
Conditions nécessaires à l'existence du polymorphisme :
1 Il doit y avoir un héritage
2. 🎜> 3. La référence de la classe parent pointe vers l'objet de la sous-classe.
Avantages du polymorphisme :1.
Le polymorphisme est remplaçable pour le code existant. Par exemple, le polymorphisme fonctionne pour la classe Circle, mais il fonctionne également pour toute autre géométrie circulaire, comme un tore.
2. Extensibilité.
Le polymorphisme rend le code extensible. L'ajout de nouvelles sous-classes n'affecte pas le polymorphisme, l'héritage et le fonctionnement des autres fonctionnalités des classes existantes. En fait, il est plus simple d’ajouter de nouvelles sous-classes pour obtenir des fonctions polymorphes. Par exemple, après avoir réalisé le polymorphisme des cônes, demi-cônes et hémisphères, il est facile d’ajouter le polymorphisme de classe sphère.
3. Capacité d'interface.
Le polymorphisme est obtenu par la superclasse fournissant une interface commune aux sous-classes via des signatures de méthodes, qui sont ensuite complétées ou remplacées par les sous-classes. Comme le montre la figure 8.3. La super classe Shape dans la figure spécifie deux méthodes d'interface qui implémentent le polymorphisme, calculateArea() et calculateVolume(). Les sous-classes, telles que Circle et Sphere, améliorent ou remplacent ces deux méthodes d'interface afin d'obtenir le polymorphisme.
4. Flexibilité.
Il incarne des opérations flexibles et diversifiées dans l'application et améliore l'efficacité de l'utilisation.
5. Simplicité.
Le polymorphisme simplifie le processus d'écriture et de modification du code des logiciels d'application. Cette fonctionnalité est particulièrement importante et importante lorsqu'il s'agit de calculs et d'opérations sur un grand nombre d'objets.
Instance polymorphe :(1) Classe associée
class A ...{ public String show(D obj)...{ return ("A and D"); } public String show(A obj)...{ return ("A and A"); } } class B extends A...{ public String show(B obj)...{ return ("B and B"); } public String show(A obj)...{ return ("B and A"); } } class C extends B...{} class D extends B...{}
(2) Question : Quel est le résultat de sortie suivant ?
A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C(); D d = new D(); System.out.println(a1.show(b)); ① System.out.println(a1.show(c)); ② System.out.println(a1.show(d)); ③ System.out.println(a2.show(b)); ④ System.out.println(a2.show(c)); ⑤ System.out.println(a2.show(d)); ⑥ System.out.println(b.show(b)); ⑦ System.out.println(b.show(c)); ⑧ System.out.println(b.show(d)); ⑨
(3) Réponses
① A and A ② A and A ③ A and D ④ B and A ⑤ B and A ⑥ A and D ⑦ B and B ⑧ B and B ⑨ A and D
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!