Au début, je ne comprenais pas pourquoi les deux appels de méthode dans le constructeur fonctionnaient, mais maintenant je pense avoir compris. Les classes d'extension héritent des méthodes du parent comme si elles étaient déclarées dans la classe elle-même, ET les méthodes existent dans le parent, donc les deux devraient fonctionner.
Je me demande maintenant s'il existe une manière préférée (c'est-à-dire une meilleure pratique) d'appeler la méthode (par l'intermédiaire de parent
ou this
), et si oui ou non il s'agit de moyens réellement identiques d'exécuter le même code, ou s'il y a des réserves à faire en utilisant l'un plutôt que l'autre.
Désolé, je suis probablement en train de trop réfléchir.
abstract class Animal {
function get_species() {
echo "test";
}
}
class Dog extends Animal {
function __construct(){
$this->get_species();
parent::get_species();
}
}
$spike = new Dog;