⊗ppOpFnCl 63 of 107 menu

Abstrakte klasse in OOP in PHP

Gestel jy het 'n klas User, en daarvan erf die klasse Employee en Student.

Terselfdertyd word daar veronderstel dat jy voorwerpe van die klasse Employee en Student sal skep, maar voorwerpe van die klas User - sal jy nie, aangesien hierdie klas slegs gebruik word vir die groepering van algemene eienskappe en metodes van sy erfgename.

In hierdie geval kan jy die skep van voorwerpe van die klas User gedwonge verbied, sodat jy of 'n ander programmeur dit nêrens per ongeluk skep nie.

Vir hierdie doel bestaan daar sogenaamde abstrakte klasse. Abstrakte klasse is klasse wat bedoel is vir oorerving daarvan. Terselfdertyd kan voorwerpe van sulke klasse nie geskep word nie.

Om 'n klas as abstrak te verklaar, moet jy die sleutelwoord abstract tydens sy verklaring skryf:

<?php abstract class User { } ?>

Laat ons dus die implementering van 'n abstrakte klas User skryf. Laat dit 'n private eienskap name hê, sowel as getters en setters daarvoor:

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

'n Poging om 'n voorwerp van die klas User te skep sal 'n fout veroorsaak:

<?php $user = new User; // sal 'n fout gee ?>

Maar om van ons klas te erf sal moonlijk wees. Laat ons 'n klas Employee maak, wat van ons abstrakte klas User sal erf:

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

Laat ons 'n voorwerp van die klas Employee skep - alles sal werk:

<?php $employee = new Employee; $employee->setName('john'); // metode van ouer, d.w.s. klas User $employee->setSalary(1000); // eie metode, d.w.s. klas Employee echo $employee->getName(); // sal 'john' afdruk echo $employee->getSalary(); // sal 1000 afdruk ?>

Maak 'n abstrakte klas Figure, wat 'n geometriese figuur voorstel. Laat die klasse vir sirkel, reghoek en vierkant daarvan erf.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp