Distinguer le polymorphisme dynamique et statique en Java
Comprendre la différence entre le polymorphisme dynamique et statique est crucial dans la programmation orientée objet avec Java. Cet article fournira une explication simplifiée et un exemple pour élucider ce concept.
Polymorphisme dynamique ou statique
Le polymorphisme permet à un seul nom de méthode d'avoir plusieurs implémentations en fonction du type d'objet qui l'appelle. Il existe deux principaux types de polymorphisme :
Surcharge de méthode
La surcharge de méthode est une forme de polymorphisme statique où plusieurs les méthodes portant le même nom existent dans la même classe mais diffèrent par leurs paramètres. Lors de l'appel d'une méthode surchargée, Java détermine la méthode appropriée à appeler en fonction du nombre et des types d'arguments transmis.
Exemple de code (surcharge de méthode) :
class Calculation {
void sum(int a, int b) { System.out.println(a b); }
void sum(int a, int b, int c) { System.out.println(a b c); }
public static void main(String[] args) {
Calculation obj = new Calculation();
obj.sum(10, 10, 10); // Output: 30
obj.sum(20, 20); // Output: 40
}
}
Le remplacement de méthode
Le remplacement de méthode est une forme de polymorphisme dynamique où les méthodes portant le même nom et la même signature sont déclarées dans des classes différentes mais partagent une classe parent commune. Lors de l'appel d'une méthode remplacée, Java détermine la méthode à appeler en fonction de la classe réelle de l'objet au moment de l'exécution.
Exemple de code (remplacement de méthode) :
class Animal {
public void move() {
System.out.println("Animals can move");
}
}
class Dog extends Animal {
public void move() {
System.out.println("Dogs can walk and run");
}
}
public class TestDog {
public static void main(String[] args) {
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object
a.move(); // Output: Animals can move
b.move(); // Output: Dogs can walk and run
}
}
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3