Maison  >  Article  >  Java  >  Exemples d'implémentation du polymorphisme en Java

Exemples d'implémentation du polymorphisme en Java

黄舟
黄舟original
2017-09-21 10:04:331754parcourir

Cet article présente principalement l'implémentation du polymorphisme en Java. Qu'est-ce que le polymorphisme ? Une question simple vous aidera à comprendre le polymorphisme Java, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à

Qu'est-ce que le polymorphisme

  • Les trois. Principales caractéristiques de l'orientation objet : encapsulation, héritage et polymorphisme. D'un certain point de vue, l'encapsulation et l'héritage sont presque toujours préparés au polymorphisme. C'est notre dernier concept et le point de connaissance le plus important.

  • La définition du polymorphisme : fait référence au fait de permettre à des objets de types différents de répondre au même message. Autrement dit, le même message peut se comporter de différentes manières selon la personne à qui il est envoyé. (L'envoi d'un message est un appel de fonction)

  • La technologie permettant d'obtenir le polymorphisme est appelée : liaison dynamique (liaison dynamique), qui fait référence au jugement du type réel de l'objet référencé lors de l'exécution, et en fonction de son type réel, il appelle sa méthode correspondante.

  • Le rôle du polymorphisme : éliminer la relation de couplage entre les types.

  • En réalité, il existe d'innombrables exemples de polymorphisme. Par exemple, si vous appuyez sur la touche F1, le document d'aide AS 3 apparaîtra sous l'interface Flash ; l'aide Word apparaîtra sous Word et l'aide et le support Windows apparaîtront sous Windows. Le même événement se produisant sur différents objets produira des résultats différents.

Voici les trois conditions nécessaires à l'existence du polymorphisme. Je demande à chacun de le réciter en rêvant !

Trois conditions nécessaires à l'existence du polymorphisme

1 Il doit y avoir un héritage
2 Il doit y avoir une substitution
3. à l'objet de sous-classe.

Avantages du polymorphisme :

1. Le polymorphisme permet le remplacement du 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, et par les sous-classes la complétant ou la remplaçant. 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 les applications 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.

La méthode d'implémentation du polymorphisme en Java : implémentation d'interface, héritage de la classe parent pour la réécriture de méthode et surcharge de méthode dans la même classe.

Une petite question :

(1) Catégories associées


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) Questions : Quel est le résultat 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éponse


① 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn