article(s) dans votre panier VOIR

Tuto PHP/MySQL | Polymorphisme

  • Vidéo 100 sur 158
  • 4h43 de formation
  • 158 leçons

Un contenu flash devrait s'afficher ici. Votre navigateur ne comporte pas de plugin flash, ou il ne s'est pas correctement initialisé.

Vous pouvez télécharger le plugin flash depuis le site d'Adobe à l'adresse suivante : http://get.adobe.com/flashplayer/.

Pour accéder à la suite de cette formation, vous devez vous abonner.
previous
summary
resume
next
play
Polymorphisme
00:00 / 01:12
HD
fullscreen
Je m’abonne
à partir de 16,6 € / mois
  • Visionnage en ligne
  • Accès illimité à toutes nos formations
OU
J'achète uniquement
la formation
49,90€
  • Téléchargement + VOD à vie
  • Accès uniquement à cette formation

Sommaire de la formation

Détails de la formation

La notion de polymorphisme est assez abstraite et peu utile en PHP. Elle découle de la notion d'héritage. Supposons qu'une classe Laser et trois classes dérivées CD, DVD et Blue aient été définies. Les trois classes dérivées ont toutes les caractéristiques de la classe Laser. Ainsi, des objets de type CD, DVD et Blue peuvent être traités comme des objets de type Laser. Cependant, il est possible de surcharger les méthodes d'instance de la classe parente afin d'induire des comportements spécifiques aux classes dérivées.

class Laser {

  public function caracteristiques() {

    echo "Disque laser<br>";

  }

}

class CD extends Laser{

  public function caracteristiques() {

    parent::caracteristiques();

    echo "Capacité : 700 Mo<br>";

  }

}

class DVD extends Laser {

  public function caracteristiques() {

    parent::caracteristiques();

    echo "Capacité : 4,7 Go<br>";

  }

}

class Blue extends Laser {

  public function caracteristiques() {

    parent::caracteristiques();

    echo "Capacité : 25 Go<br>";

  }

}

 

Sans entrer dans le détail du code, vous pouvez comprendre que les classes héritées CD, DVD et Blue surchargent la méthode publique caracteristiques de la classe parente laser. Elles conservent le comportement de la méthode parente (parent::caracteristiques();) et la complètent avec des informations qui leur sont spécifiques.