⊗ppOpFnCl 63 of 107 menu

Abstraktné triedy v OOP v PHP

Nech máte triedu User, a z nej dedia triedy Employee a Student.

Pričom sa predpokladá, že budete vytvárať objekty tried Employee a Student, ale objekty triedy User - nebudete, pretože táto trieda sa používa len na zoskupenie spoločných vlastností a metód svojich dedičov.

V tomto prípade môžete nútene zakázať vytvárať objekty triedy User, aby ste vy alebo iný programátor niekde ich náhodou nevytvorili.

Na to existujú takzvané abstraktné triedy. Abstraktné triedy predstavujú triedy, určené na dedenie od nich. Pričom objekty takých tried nemožno vytvoriť.

Na to, aby ste deklarovali triedu ako abstraktnú, potrebujete pri jej deklarácii napísať kľúčové slovo abstract:

<?php abstract class User { } ?>

Takže, poďme napísať implementáciu abstraktnej triedy User. Nech má súkromnú vlastnosť name, a taktiež gettre a settre pre ňu:

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

Pokus o vytvorenie objektu triedy User spôsobí chybu:

<?php $user = new User; // vypíše chybu ?>

Ale zdediť od našej triedy bude možné. Urobme triedu Employee, ktorá bude dediť od našej abstraktnej triedy User:

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

Vytvorme objekt triedy Employee - všetko bude fungovať:

<?php $employee = new Employee; $employee->setName('john'); // metóda rodiča, t.j. triedy User $employee->setSalary(1000); // vlastná metóda, t.j. triedy Employee echo $employee->getName(); // vypíše 'john' echo $employee->getSalary(); // vypíše 1000 ?>

Urobte abstraktnú triedu Figure, ktorá predstavuje geometrický útvar. Nech z nej dedia triedy pre kruh, obdĺžnik a štvorec.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť