Le polymorphisme
Le polymorphisme est un concept clé de la programmation orientée objet (POO) qui permet à des objets de différentes classes de répondre de manière similaire à un même message ou une même méthode. En d'autres termes, des objets de classes différentes peuvent être traités de la même manière si elles ont une relation d'héritage ou si elles implémentent une même interface.
Voici un exemple illustrant le polymorphisme en Dart avec la classe Personne
:
class Person {
String _nom;
Person(this._nom);
String get nom => _nom;
void sePresenter() {
print("Bonjour, je m'appelle $_nom.");
}
}
class Employee extends Person {
String _poste;
Employe(String nom, this._poste) : super(nom);
@override
void sePresenter() {
print("Bonjour, je m'appelle $_nom et je suis $_poste.");
}
}
void presenter(Person person) {
personne.sePresenter(); // Appel polymorphique
}
void main() {
var person = Person("Alice");
var employee = Employee("Bob", "Développeur");
presenter(person); // Affiche : Bonjour, je m'appelle Alice.
presenter(employee); // Affiche : Bonjour, je m'appelle Bob et je suis Développeur.
}
Dans cet exemple, la fonction presenter
prend un objet de type Personn
en paramètre. Elle appelle ensuite la méthode sePresenter
sur cet objet. Lorsque la fonction est appelée avec un objet de type Person
, la méthode sePresenter
de la classe Person
est appelée. Lorsqu'elle est appelée avec un objet de type Employe
, la méthode sePresenter
redéfinie dans la classe Employee
est appelée, même si la référence est de type Person
. Cela illustre le polymorphisme en action, où des objets de classes différentes répondent de manière similaire à un même message (sePresenter
).
Le polymorphisme permet de concevoir des programmes plus flexibles et génériques, où le comportement des objets peut être déterminé au moment de l'exécution en fonction de leur type réel. Cela favorise la réutilisation du code et la gestion efficace de la complexité dans les grandes applications.
Last updated