⊗ppOpFnCl 63 of 107 menu

Abstraktni razredi v OOP v PHP

Recimo, da imate razred User, od katerega pa dedujeta razreda Employee in Student.

Pri tem se predvideva, da boste ustvarjali objekte razredov Employee in Student, objektov razreda User pa ne, saj se ta razred uporablja samo za združevanje skupnih lastnosti in metod svojih naslednikov.

V tem primeru lahko prisilno prepoveste ustvarjanje objektov razreda User, da vi ali drug programer kje slučajno ne ustvarite njih.

Za to obstajajo tako imenovani abstraktni razredi. Abstraktni razredi so razredi, namenjeni dedovanju od njih. Objektov takšnih razredov ni mogoče ustvariti.

Če želite razred razglasiti za abstraktnega, morate pri njegovi deklaraciji napisati ključno besedo abstract:

<?php abstract class User { } ?>

Torej, napišimo implementacijo abstraktnega razreda User. Naj ima zasebno lastnost name, ter getterje in setterje zanj:

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

Poskus ustvarjanja objekta razreda User bo povzročil napako:

<?php $user = new User; // bo izpisalo napako ?>

Od našega razreda pa bo lahko dedovali. Naredimo razred Employee, ki bo dedoval od našega abstraktnega razreda User:

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

Ustvarimo objekt razreda Employee - vse bo delovalo:

<?php $employee = new Employee; $employee->setName('john'); // metoda starša, tj. razreda User $employee->setSalary(1000); // lastna metoda, tj. razreda Employee echo $employee->getName(); // bo izpisalo 'john' echo $employee->getSalary(); // bo izpisalo 1000 ?>

Naredite abstraktni razred Figure, ki predstavlja geometrijsko figuro. Naj od njega dedujejo razredi za krog, pravokotnik in kvadrat.

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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni