Médiaforma

All posts tagged parent

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.


Cliquez ici pour accéder au pack eBook+vidéos HTML5, CSS3, JavaScript

Dans la section précédente, vous avez appris à limiter les modifications de styles CSS à une balise spécifique dont l’attribut class ou id a une valeur particulière. Dans cette section, je vais vous montrer comment utiliser un sélecteur descendant pour modifier les caractéristiques d’une balise enfant d’une autre balise.

Dans cet exemple, nous allons modifier le style des balises <li> enfants d’une balise <div>. Le corps du document contient deux listes <ul> identiques. La première est spécifiée à l’extérieur d’une balise <div> et la deuxième à l’intérieur d’une balise <div>.

Pour modifier le style des balises <li> contenues dans une balise <div>, nous allons utiliser un sélecteur descendant en précisant la balise parent (div) et la balise enfant (li). Dans cet exemple, les balises <li> contenues dans une balise <div> seront de couleur rouge :

Exécutons ce code dans un navigateur. Comme vous pouvez le voir, seules les balises <li> contenues dans une balise <div> sont affectées par le changement de style.