PHP · Leçon 8
Héritage et fichiers séparés
À retenir
- Une classe par fichier, au même nom (
Compte.php), inclus avecrequire_once 'Compte.php';. requirearrête tout si le fichier manque,includecontinue ;_onceévite d'inclure deux fois.class Livret extends Compte: la classe enfant hérite de tout et peut ajouter ou redéfinir des méthodes.parent::__construct(…)etparent::methode()appellent la version de la classe parente.protected= visible dans la classe et ses enfants ;private= seulement dans la classe.throw new InvalidArgumentException("…")lance une exception ;try { … } catch (InvalidArgumentException $e) { $e->getMessage(); }l'attrape.
Mémo
<?php
require_once 'Compte.php';
class Livret extends Compte
{
public function __construct(string $titulaire, private float $taux)
{
parent::__construct($titulaire);
}
public function decrire(): string
{
return parent::decrire() . " ($this->taux %)";
}
}
try {
$livret->deposer(-5);
} catch (InvalidArgumentException $e) {
echo $e->getMessage();
} Pièges à éviter
- Inclure la classe enfant avant la classe parente.
- Mettre
privateune propriété dont la classe enfant a besoin : il fautprotected. - Oublier
parent::__construct(): les propriétés du parent ne sont pas remplies. - Utiliser
requireau lieu derequire_onceet déclarer deux fois la même classe.