⊗ppOpIfII 74 of 107 menu

Nasleđivanje od klase i implementacija interfejsa u OOP u PHP-u

Klasa može naslediti od druge klase i pritom implementirati neki interfejs. Razmotrimo na praktičnom primeru.

Neka želimo da napravimo klasu Programmer, koja će imati ime, platu i listu jezika koje programer poznaje. Trenutno je naš opis klase prilično nejasan: da, u klasi će biti ime, plata, jezici - ali koje će metode biti u našoj klasi?

Hajde da preciznije opišemo našu klasu pomoću interfejsa iProgrammer:

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

Recimo da smo pretražili već implementirane klase i, ispostavilo se, već imamo sličnu klasu Employee. Ona ne implementira sve metode klase Programmer, ali deo njih. Evo koda već postojeće klase kod nas:

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

Logično je u našem slučaju učiniti tako da naša nova klasa Programmer nasledi deo potrebnih metoda od klase Employee (a deo ćemo kasnije implementirati već u samoj novoj klasi):

<?php class Programmer extends Employee { } ?>

Pritom nam je poznato da klasa Pogrammer treba da implementira interfejs iProgrammer:

<?php class Programmer implements iProgrammer { } ?>

Hajde da spojimo nasleđivanje od klase Employee i implementaciju interfejsa iProgrammer:

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

Ispostaviće se da će naša klasa Pogrammer naslediti od klase Employee metode __construct, getName i getSalary, a metode addLang i getLangs moraćemo da implementiramo:

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

Interfejsu iProgrammer je svejedno, rodne metode u klasi ili nasleđene - glavno je da svi opisani metodi budu implementirani.

Kopirajte kod moje klase Employee i kod interfejsa iProgrammer. Nemojte kopirati moju šablon klase Programmer - ne gledajući u moj kod implementirajte ovu klasu samostalno.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij