⊗ppOpFnCl 63 of 107 menu

Clase abstracte în OOP în PHP

Să presupunem că aveți o clasă User, iar de la ea moștenesc clasele Employee și Student.

În acest caz, se presupune că veți crea obiecte ale claselor Employee și Student, dar obiecte ale clasei User - nu veți crea, deoarece această clasă este folosită doar pentru gruparea proprietăților și metodelor comune ale moștenitorilor săi.

În acest caz, puteți interzice forțat crearea de obiecte ale clasei User, astfel încât dvs. sau un alt programator undeva să nu le creeze accidental.

Pentru aceasta există așa-numitele clase abstracte. Clasele abstracte reprezintă clase destinate moștenirii de la ele. În același timp, obiectele unor astfel de clase nu pot fi create.

Pentru a declara o clasă ca abstractă, trebuie să scrieți cuvântul cheie abstract la declararea sa:

<?php abstract class User { } ?>

Deci, să scriem implementarea clasei abstracte User. Să presupunem că are o proprietate privată name, precum și gettere și settere pentru ea:

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

Încercarea de a crea un obiect al clasei User va provoca o eroare:

<?php $user = new User; // va da o eroare ?>

Dar moștenirea de la clasa noastră va fi posibilă. Să facem clasa Employee, care va moșteni de la clasa noastră abstractă User:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } } ?>

Să creăm un obiect al clasei Employee - totul va funcționa:

<?php $employee = new Employee; $employee->setName('john'); // metoda părinte, adică a clasei User $employee->setSalary(1000); // metoda proprie, adică a clasei Employee echo $employee->getName(); // va afișa 'john' echo $employee->getSalary(); // va afișa 1000 ?>

Realizați o clasă abstractă Figure, reprezentând o figură geometrică. Să moștenească de la ea clase pentru cerc, dreptunghi și pătrat.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge