⊗ppOpIhOPM 28 of 107 menu

Overstyring af forældremetoder i OOP i PHP

En underklasse kan overstyre en forældremetode ved at oprette en metode med det samme navn. Lad os se et eksempel. Antag, at vi har følgende forældreklasse:

<?php class User { private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } ?>

Lad os i underklassen oprette en metode med samme navn:

<?php class Student extends User { public function setName($name) { } } ?>

Som regel er overstyring af forældremetoder nødvendig for at ændre eller supplere denne metodes adfærd. Lad os i vores tilfælde tilføje en kontrol af navnets længde:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Lad os sikre os, at det er den overstyrede metode, der kaldes. Lad os først oprette et objekt af underklassen:

<?php $student = new Student; ?>

Lad os nu kalde vores metode og give den en korrekt værdi:

<?php $student->setName('john'); ?>

Lad os nu kalde metoden og give den en ukorrekt værdi. Som et resultat vil vi se den udløste undtagelse:

<?php $student->setName(''); // fejl ?>

I klassen User skal du lave en getter og setter for alder.

I klassen Employee skal du overstyre alder-sætteren og lave en kontrol i den for, at alderen er fra 18 til 65 år.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis