⊗ppOpIfII 74 of 107 menu

Oorerving van 'n klas en implementering van 'n koppelvlak in OOP in PHP

'n Klas kan van 'n ander klas oorerf en terselfdertyd 'n koppelvlak implementeer. Kom ons kyk na 'n praktiese voorbeeld.

Laat ons sê ons wil 'n klas Programmer maak, wat 'n naam, salaris en 'n lys tale het, wat die programmeerder ken. Ons beskrywing van die klas is nogal vaag vir nou: ja, die klas sal 'n naam, salaris, tale hê - maar watter metodes sal in ons klas wees?

Kom ons beskryf ons klas meer akkuraat met behulp van die koppelvlak iProgrammer:

<?php interface iProgrammer { public function __construct($name, $salary); public function getName(); public function getSalary(); public function getLangs(); public function addLang($lang); } ?>

Laat ons sê ons het deur ons reeds geïmplementeerde klasse gesoek en dit blyk dat ons reeds 'n soortgelyke klas Employee het. Dit implementeer nie al die metodes van die klas Programmer nie, maar 'n deel. Hier is die kode van die klas wat reeds by ons bestaan:

<?php class Employee { private $name; private $salary; public function __construct($name, $salary) { $this->name = $name; $this->salary = $salary; } public function getName() { return $this->name; } public function getSalary() { return $this->salary; } } ?>

Dit is logies in ons geval om te maak dat ons nuwe klas Programmer 'n deel van die nodige metodes oorerf van die klas Employee (en 'n deel sal ons later implementeer in die nuwe klas self):

<?php class Programmer extends Employee { } ?>

Terselfdertyd weet ons dat die klas Pogrammer die koppelvlak iProgrammer moet implementeer:

<?php class Programmer implements iProgrammer { } ?>

Kom ons kombineer oorerving van die klas Employee en implementering van die koppelvlak iProgrammer:

<?php class Programmer extends Employee implements iProgrammer { } ?>

Dit sal beteken dat ons klas Pogrammer die metodes __construct, getName en getSalary sal oorerf van die klas Employee, en ons sal die metodes addLang en getLangs self moet implementeer:

<?php class Programmer extends Employee implements iProgrammer { public function addLang($lang) { // implementering } public function getLangs() { // implementering } } ?>

Die koppelvlak iProgrammer maak nie saak nie, of die metodes eie aan die klas is of geërf is - die hoofsaak is dat al die beskryfde metodes geïmplementeer is.

Kopieer die kode van my klas Employee en die kode van die koppelvlak iProgrammer. Moenie my klas Programmer se raamwerk kopieer nie - implementeer hierdie klas selfstandig sonder om na my kode te kyk.

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