Cours RechercherCtrl K

Fiches de révision PHP

Fiche : Héritage et fichiers séparés

PHP · Leçon 8

Héritage et fichiers séparés

À retenir

  • Une classe par fichier, au même nom (Compte.php), inclus avec require_once 'Compte.php';.
  • require arrête tout si le fichier manque, include continue ; _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(…) et parent::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 private une propriété dont la classe enfant a besoin : il faut protected.
  • Oublier parent::__construct() : les propriétés du parent ne sont pas remplies.
  • Utiliser require au lieu de require_once et déclarer deux fois la même classe.

Revoir la leçon et ses exercices