⊗ppOpIfII 74 of 107 menu

Trashëgimia nga Klasa dhe Implementimi i Ndërfaqes në OOP në PHP

Një klasë mund të trashëgojë nga një klasë tjetër dhe në të njëjtën kohë të implementojë një ndërfaqe. Le ta shqyrtojmë me një shembull praktik.

Le të themi se duam të bëjmë një klasë Programmer, e cila do të ketë emër, pagë dhe një listë gjuhësh, që programuesi i njeh. Përshkrimi ynë i klasës është mjaft i paqartë: po, në klasë do të ketë emër, pagë, gjuhë - por cilat metoda do të ketë klasa jonë?

Le ta përshkruajmë klasën tonë më saktë me anë të ndërfaqes iProgrammer:

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

Le të themi se kemi kërkuar në klasat tashmë të implementuara dhe, del se ne tashmë kemi një klasë të ngjashme Employee. Ajo nuk i implementon të gjitha metodat e klasës Programmer, por një pjesë. Këtu është kodi i klasës sonë ekzistuese:

<?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; } } ?>

Është logjike në rastin tonë të bëjmë në mënyrë që klasa jonë e re Programmer të trashëgojë pjesën e metodave të nevojshme nga klasa Employee (dhe pjesën tjetër do ta implementojmë më vonë në vetë klasën e re):

<?php class Programmer extends Employee { } ?>

Në të njëjtën kohë, ne e dimë se klasa Pogrammer duhet të implementojë ndërfaqen iProgrammer:

<?php class Programmer implements iProgrammer { } ?>

Le të kombinojmë trashëgiminë nga klasa Employee dhe implementimin e ndërfaqes iProgrammer:

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

Do të dalë që klasa jonë Pogrammer do të trashëgojë nga klasa Employee metodat __construct, getName dhe getSalary, ndërsa metodat addLang dhe getLangs do të na duhet t'i implementojmë ne:

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

Ndërfaqes iProgrammer nuk i intereson, metodat janë të lindura në klasë apo të trashëguara - gjëja kryesore është që të gjitha metodat e përshkruara të jenë të implementuara.

Kopjoni kodin e klasës sime Employee dhe kodin e ndërfaqes iProgrammer. Mos e kopjoni skeletin tim të klasës Programmer - pa parë në kodin tim, implementoni këtë klasë në mënyrë të pavarur.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo