⊗ppOpIhOPM 28 of 107 menu

Przesłanianie metod rodzica w OOP w PHP

Klasa potomna może przesłonić metodę rodzica, tworząc metodę o tej samej nazwie. Spójrzmy na przykład. Załóżmy, że mamy następującą klasę rodzica:

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

Stwórzmy w klasie potomnej metodę o tej samej nazwie:

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

Zazwyczaj przesłanianie metod rodzica służy do zmiany lub rozszerzenia zachowania tej metody. W naszym przypadku dodajmy sprawdzanie długości imienia:

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

Upewnijmy się, że wywoływana jest właśnie przesłonięta metoda. Na początek stwórzmy obiekt klasy potomka:

<?php $student = new Student; ?>

Teraz wywołajmy naszą metodę, przekazując do niej poprawne wartości:

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

A teraz wywołajmy metodę, przekazując do niej niepoprawne wartości. W rezultacie zobaczymy wyrzucony wyjątek:

<?php $student->setName(''); // błąd ?>

W klasie User zrób getter i setter wieku.

W klasie Employee przesłoń setter wieku i zrób w nim sprawdzenie, czy wiek jest od 18 do 65 lat.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć