educom PHP-basis E-learning

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

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

  1. git add 08 → commit → push
  2. Mail: les 08 klaar of hulp + repo-link

Door naar les 09 →