⊗ppOpFnCl 63 of 107 menu

Abstraktūs klasės OOP PHP

Tarkime, kad turite klasę User, o iš jos paveldi klasės Employee ir Student.

Be to, numanoma, kad kursite Employee ir Student klasių objektus, bet User klasės objektų – nekursite, nes ši klasė naudojama tik savo pavaldinių bendrųjų savybių ir metodų grupavimui.

Tokiu atveju galima priverstinai uždrausti kurti User klasės objektus, kad jūs ar kitas programuotojas kažkur netyčia jų nesukurtų.

Tam yra vadinamosios abstrakčios klasės. Abstrakčios klasės yra klasės, skirtos iš jų paveldėti. Be to, tokių klasių objektų negalima sukurti.

Norint paskelbti klasę abstrakčia, reikia prie jos deklaracijos parašyti raktinį žodį abstract:

<?php abstract class User { } ?>

Taigi, parašykime abstrakčios klasės User realizaciją. Tegu ji turi privatų savybę name, taip pat getterius ir setterius jai:

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

Bandymas sukurti User klasės objektą sukels klaidą:

<?php $user = new User; // išduos klaidą ?>

Tačiau paveldėti iš mūsų klasės bus galima. Sukurkime klasę Employee, kuri paveldės iš mūsų abstrakčios klasės User:

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

Sukurkime Employee klasės objektą - viskas veiks:

<?php $employee = new Employee; $employee->setName('john'); // tėvo metodas, t.y. User klasės $employee->setSalary(1000); // savas metodas, t.y. Employee klasės echo $employee->getName(); // išves 'john' echo $employee->getSalary(); // išves 1000 ?>

Sukurkite abstrakčią klasę Figure, atstovaujančią geometrinę figūrą. Tegul iš jos paveldi klasės apskritimui, stačiakampiui ir kvadratui.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti