📘 Chapitre – Constructeurs, héritage et visibilité
1. 🎯 Objectif pédagogique
Savoir utiliser les constructeurs pour initialiser des objets, appliquer les principes d’héritage entre classes et maîtriser la visibilité (public
, protected
, private
) des propriétés et méthodes.
2. 📚 Concepts abordés
- Le mot-clé
__construct()
- Initialisation des propriétés lors de l’instanciation
- Notion d’héritage :
extends
- Redéfinition (surcharge) de méthodes
-
Visibilité :
public
: accessible partout.protected
: accessible dans la classe et ses enfants.private
: accessible uniquement dans la classe.
3. 🧠 Explication théorique
Le constructeur est une méthode spéciale qui s’exécute automatiquement lors de la création d’un objet. Exemple :
class Article {
public $titre;
public $contenu;
public function __construct($titre, $contenu) {
$this->titre = $titre;
$this->contenu = $contenu;
}
public function afficher() {
return "Titre : " . $this->titre . " - Contenu : " . $this->contenu;
}
}
$article = new Article("Introduction à PHP", "PHP est un langage serveur.");
echo $article->afficher();
Héritage
Une classe enfant peut hériter des propriétés et méthodes d’une classe parent.
class BlogArticle extends Article {
public $auteur;
public function afficher() {
return parent::afficher() . " - Auteur : " . $this->auteur;
}
}
4. 🛠 Tutoriel pratique
Résumé du travail : Créer une classe Article
, puis une classe BlogArticle
héritant d’Article
.
Arborescence projet :
projet_poo/
├── Article.php
└── test.php
Étape 1 : Classe Article
avec constructeur
<?php
class Article {
protected $titre;
protected $contenu;
public function __construct($titre, $contenu) {
$this->titre = $titre;
$this->contenu = $contenu;
}
public function afficher() {
return "Titre : " . $this->titre . " - Contenu : " . $this->contenu;
}
}
Étape 2 : Classe enfant BlogArticle
<?php
require 'Article.php';
class BlogArticle extends Article {
private $auteur;
public function __construct($titre, $contenu, $auteur) {
parent::__construct($titre, $contenu);
$this->auteur = $auteur;
}
public function afficher() {
return parent::afficher() . " - Auteur : " . $this->auteur;
}
}
Étape 3 : Tester dans test.php
<?php
require 'BlogArticle.php';
$article = new BlogArticle("POO en PHP", "Découvrir l'héritage.", "Alice");
echo $article->afficher();
5. 🧾 Résumé et points-clés
__construct()
permet d’initialiser les objets dès leur création.- Héritage (
extends
) : réutilisation et extension des classes existantes. - Visibilité : contrôler l’accès aux propriétés et méthodes.
parent::
appelle une méthode de la classe parente.