9- Le polymorphisme

Le polymorphisme, littéralement "qui a plusieurs formes" est un principe fondamental de la POO. Cela veut dire que toute classe qui hérite d'une autre classe possède à la fois son propre type mais également le type des classes dont elle hérite, et des interfaces qu'elle implémente.

Concrètement, cela veut dire que si vous êtes une voiture, vous êtes également un véhicule. Cela semble trivial, mais dans les faits, si nous avons une classe Parking qui a une méthode qui attend un Vehicule en paramètre, nous pouvons lui passer notre $voiture. L'inverse n'est pas vrai : si la méthode garerVoiture(Voiture $voiture) attend une Voiture, elle n'acceptera pas de Camion ou de Moto qui héritent pourtant aussi de Vehicule.