⊗ppOpIfII 74 of 107 menu

PHP OOP-da klas miras we interfeýsi amala aşyrmak

Klas başga bir klasdan miras alyp biler we şol bir wagtyň özünde bir interfeýsi amala aşyryp biler. Amaly mysalda gözden geçireýliň.

Goý, bizde Programmer atly klas bolsun, onyň ady, maaşy we programmist bilýän dilleriň sanawy bolsun. Häzirki wagtda klasymyzyň düşündirişi örän düýbsüz: hawa, klasda ady, maaşy, dilleri bolup biler - ýöne klasymyzda haýsy metodlar bolup biler?

Geliň klasymyzy iProgrammer interfeýsi ýardymynda has anyk beýan edeliň:

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

Goý, biz eýýäm amala aşyrylan klaslarymyzda göz aýlap görüp, bizde eýýäm şuňa meňzeş Employee atly klas bar ekeni çykyar. Ol Programmer klasynyň ähli metodlaryny amala aşyrmok, ýöne bölegini. Bizde bar bolan klasyň kody şeýle:

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

Bizim ýagdaýymyzda makyldyr, eger täze klasymyz Programmer özüne gerek bolan metodlaryň bölegini Employee klasyndan miras alsa (bölegini bolsa soňra täze klasyň özünde amala aşyrarys):

<?php class Programmer extends Employee { } ?>

Şol bir wagtynda biz bilýäris, Programmer klasy iProgrammer interfeýsini amala aşyrmaly:

<?php class Programmer implements iProgrammer { } ?>

Geliň Employee klasyndan miras almaklygy we iProgrammer interfeýsini amala aşyrmaklygy birleşdireliň:

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

Netijede bizim Programmer klasymyz Employee klasyndan __construct, getName we getSalary metodlaryny miras alyp, addLang we getLangs metodlaryny bolsa özümiz amala aşyrmaly bolarys:

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

iProgrammer interfeýsi üçin, metodlaryň klasa degişlimi ýa-da miras alnanmy diňe bir wajyp - beýan edilen ähli metodlar amala aşyrylmak.

Meniň Employee klasymyň kodyny we iProgrammer interfeýsimiň kodyny göçüriň. Meniň Programmer klasym üçin taýýarlagymy göçürmäň - meniň koduma seretmän bu klasy öz başyňyza amala aşyryň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et