Les 08 — Abstractie, inheritance & interfaces
Abstracte classes, subclasses, pass-by-reference, en interfaces als “contract”.
In deze les
Wat je gaat doen. Bear + subclass Grizzly met roars(). Extra: interface op een User; pass-by-reference.
Wat je leert. Een class als mal (abstract), een contract (interface), en wat er gebeurt als je een object doorgeeft.
Komt aan bod. Abstract, parent::, $this vs self::, & (reference), interface / implements.
Demo (concept)
Eenvoudige class- en reference-voorbeelden. Niet de Bear-opdracht.
Klik een bestand om de bron te zien (of “Nieuwe tab”). PHP draait bij jou lokaal in XAMPP.
Gewone opdracht
Opdracht 20
Werk een Bear-class uit. Toon properties van class én subclasses als string (niet alleen var_dump). Maak subclass Grizzly met boolean method roars(). Bestanden onder 08/.
Extra / variant
Extra A — Opdracht 21 Interface Identifier
Implementeer interface met o.a. setId/getId, checkFileName() (jpg/png/gif), showImage(), showPassport() in class User. Toon resultaat in een show-script.
Extra B Pass-by-ref lab
Maak 08/pass_ref_lab.php dat het verschil value vs reference toont (eenvoudig + met object/class), met korte uitleg in de output.
Extra C Abstract vehicle
Bestudeer/nabouw vehicle_abstract.php: leg in 08/abstract-notitie.md uit waarom je een abstracte class niet direct new kunt doen.
Check
- Grizzly bestaat en
roars()werkt. - Properties zijn als leesbare string zichtbaar.
Uitwerking (ná eigen poging)
Bear/Grizzly (opdracht 20) en extra’s interface / abstract / pass-by-ref. Eerst zelf bouwen.
Toon uitwerkingen
Klik een bestand om de bron te zien (of “Nieuwe tab”). PHP draait bij jou lokaal in XAMPP.
Opleveren
git add 08→ commit → push- Mail: les 08 klaar of hulp + repo-link