Polymorphisme en Java : un guide complet
En programmation orientée objet, le polymorphisme permet de traiter des objets de différentes classes comme des objets d'un superclasse commune. Java prend en charge le polymorphisme via deux mécanismes principaux : le polymorphisme statique et le polymorphisme dynamique.
Polymorphisme statique
Le polymorphisme statique, également connu sous le nom de surcharge de méthodes, se produit lorsque deux méthodes ou plus dans la même classe a le même nom mais des listes de paramètres différentes. Lors de la compilation, le compilateur détermine quelle méthode invoquer en fonction du nombre et des types d'arguments passés.
Exemple :
<code class="java">class Calculation { void sum(int a, int b) {} void sum(int a, int b, int c) {} } // Main method Calculation obj = new Calculation(); obj.sum(10, 10, 10); // 30 obj.sum(20, 20); // 40</code>
Dans cet exemple, la méthode sum est surchargé avec deux listes de paramètres différentes. Lorsque la méthode est appelée avec trois arguments, le compilateur choisit la méthode sum avec trois paramètres. A l'inverse, lorsque la méthode est appelée avec deux arguments, le compilateur choisit la méthode somme avec deux paramètres.
Polymorphisme dynamique
Polymorphisme dynamique, également appelé remplacement de méthode, se produit lorsque deux méthodes ou plus dans des classes différentes ont le même nom et la même signature. Pendant l'exécution, la machine virtuelle détermine quelle méthode appeler en fonction du type d'exécution de l'objet.
Exemple :
<code class="java">class Animal { public void move() {} } class Dog extends Animal { public void move() {} } // Main method Animal a = new Animal(); // Animal reference and object Animal b = new Dog(); // Animal reference but Dog object a.move(); // "Animals can move" b.move(); // "Dogs can walk and run"</code>
Dans cet exemple, la méthode move est remplacé dans la classe Dog. Lorsque la méthode move est appelée sur la référence Animal a, l'implémentation Animal de move est invoquée. Cependant, lorsque la méthode move est appelée sur la référence Dog b, l'implémentation Dog de move est invoquée, démontrant le polymorphisme dynamique.
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!