Les héritages de classe : Héritage de constructeur.
Voici une présentation de fruits et une question à leur sujet :
* Le fruit d'intérêt est une tomate et sa couleur est rouge.
Question : Suis-je un fruit ou un légume ?
* Le fruit d'intérêt est une fraise et sa couleur est rouge.
Question : Suis-je un fruit ou une baie ?
---------------------------------------------------------
Voici du code php intervenant dans ce visuel :
Les héritages de classe : Source : https://www.w3schools.com/php/php_oop_inheritance.asp
#?php
class Fruit {
public $name;
public $color;
public function __construct($name, $color) { On crée le constructeur de la classe Fruit avec les méthodes name et color
$this->name = $name;
$this->color = $color;
}
public function intro() { On crée une méthode intro à cette classe Fruit
echo "* Le fruit d'intérêt est une $this->name et sa couleur est $this->color.L'impression d'1 propriété d'1 objet dans 1 echo passe par le mot clé $this";
}
}
On crée une nouvelle classe Strawberry héritée de la classe Fruit
class Strawberry extends Fruit { Le mot clé pour l'héritage est 'extends'
public function message() { On crée une fonction message() propre à la classe Straberry
echo "Question : Suis-je un fruit ou une baie ? ";
}
}
On crée une nouvelle classe Tomate héritée de la classe Fruit
class Tomate extends Fruit {
public function message() {
echo "Question : Suis-je un fruit ou un légume ? ";
}
}
La création d'un objet de la classe secondaire Tomate n'a pas besoin..
.. d'être initiée depuis la classe Fruit !!!
Donc cette initialisation démarre comme pour new Fruit(ar1,ar2) sauf qu'on écrit new Tomate(arg1, arg2) !!!
Alors même que la classe tomate n'a pas de constructeur : Elle en a héritée !!!!!
$tomate = new Tomate("tomate", "rouge");
pas besoin de faire new Fruit("tomate", "rouge") !!
$tomate->intro();
$tomate->message();
$strawberry = new Strawberry("fraise", "rouge");
$strawberry->intro();
$strawberry->message();
?>