⊗ppOpFnMt 64 of 107 menu

PHP-dä OOP-da Abstrakt Metodlar

Abstrakt klasslar hem-de abstrakt metodlary öz içine alyp biler. Şeýle metodlaryň doly amala aşyrylyşy bolmaly däl, olaryň maksady şondan ybarat: şol metodlaryň nesillerde bolmalydygyny görkezmek. Hakyky şol metodlary amala aşyrmak - bolsa nesilleriň wezipesi.

Metody abstrakt hökmünde kesgitlemek üçin, ony kesgitläňizde abstract açar sözüni ýazmaly.

Geliň amaly ýörelgä synanyşaly. Görkezeliň, User klassyňyzň ähli nesilleri increaseRevenue metodyna eýe bolmaly.

Bu metod ulanyjynyň häzirki girdejisini almaly we ony parametr hökmünde geçirilen belli bir baha köpeltmeli.

User klassyň özi, nesiliň nähili girdeji aljakdygyny bilmeýär - işgäriňki iş haky, talybyňky bolsa stipendiýa. Şonuň üçin her bir nesil bu metody özüniň usuly bilen amala aşyrar.

Bu ýerde esasy mesele şonda: User klassyň abstrakt metodi programmistleri bu metodu nesillerde amala aşyrmaga mejbur edýär, ýogsam PHP ýalňyşlyk bildirer. Şeýlelik bilen siz, ýa-da siziň kodyňyz bilen işleýän beýleki programmist, nesilde gerekli metodi amala aşyrmagy hemişelik ýatdan çykaryp bilmersiňiz.

Bolýarso, geliň amaly ýörelgä synanyşaly. User klassyňyz üçin increaseRevenue abstrakt metoduny goşalyň:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Bedeni ýok abstrakt metod: abstract public function increaseRevenue($value); } ?>

Görkezeliň, bizim Employee klassyňyz häzirki wagtda üýtgeşikliksiz galar. Bu ýagdaýda, hat-da Employee klassyňyz üçin obýekt döredilmese, ýöne klassyňyz kesgitlenýän kody işletseňiz hem - PHP ýalňyşlyk bildirer.

Indi geliň Employee klassyňyz üçin increaseRevenue metoduny amala aşyryşyny ýazalyň:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Metody amala aşyryşyny ýazalyň: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Kodumyzyň işleýşini barlalyň:

<?php $employee = new Employee; $employee->setName('john'); $employee->setSalary(1000); $employee->increaseRevenue(100); echo $employee->getSalary(); ?>

Geliň increaseRevenue metoduny hem-de Student klassyňyz üçin amala aşyralyň. Indi bizim metodymyz stipendiýany köpelder:

<?php class Student extends User { private $scholarship; // stipendiýa public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Metod stipendiýany köpeldýär: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

User klassyňyza şol bir abstrakt increaseRevenue metodyny goşuň. Bu metod üçin amala aşyryşy Employee we Student klasslaryňyza ýazyň.

Figure klassyňyza figuranyň meýdanyny we perimetrini almak üçin abstrakt metodlar ýazyň.

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