⊗ppOpFnCl 63 of 107 menu

Abstraktās klases OOP PHP

Pieņemsim, ka jums ir klase User, un no tiem mantojas klases Employee un Student.

Šajā gadījumā tiek pieņemts, ka jūs izveidosiet klases Employee un Student objektus, bet klases User objektus - neizveidosiet, jo šī klase tiek izmantota tikai savu mantinieku kopīgo īpašību un metožu grupēšanai.

Šajā gadījumā varat piespiedu kārtā aizliegt izveidot klases User objektus, lai jūs vai cits programmētājs kaut kur nejauši tos neizveidotu.

Šim nolūkam pastāv tā sauktās abstraktās klases. Abstraktās klases ir klases, kas paredzētas mantot no tām. Tajā pašā laikā šādu klases objektus nevar izveidot.

Lai deklarētu klasi kā abstraktu, jums tās deklarēšanas laikā jāraksta atslēgvārds abstract:

<?php abstract class User { } ?>

Tātad, uzrakstīsim abstraktās klases User realizāciju. Lai tai būtu privāts īpašums name, kā arī getteri un setteri priekš tā:

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

Mēģinājums izveidot klases User objektu izraisīs kļūdu:

<?php $user = new User; // izvadīs kļūdu ?>

Bet mantot no mūsu klases būs iespējams. Izveidosim klasi Employee, kas mantos no mūsu abstraktās klases User:

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

Izveidosim klases Employee objektu - viss darbosies:

<?php $employee = new Employee; $employee->setName('john'); // vecāka metode, t.i., klases User $employee->setSalary(1000); // paša metode, t.i., klases Employee echo $employee->getName(); // izvadīs 'john' echo $employee->getSalary(); // izvadīs 1000 ?>

Izveidojiet abstraktu klasi Figure, kas ir ģeometriska figūra. Lai no tās manto klases apļam, taisnstūrim un kvadrātam.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt