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 Personnen 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