⊗ppOpFnMt 64 of 107 menu

Metodat Abstrakte në OOP në PHP

Klasat abstrakte gjithashtu mund të përmbajnë metoda abstrakte. Metoda të tilla nuk duhet të kenë implementim, por janë të nevojshme për të treguar se metoda të tilla duhet të jenë te pasardhësit. Dhe implementimi i metodave të tilla - është tashmë detyrë e pasardhësve.

Për të deklaruar një metodë si abstrakte, gjatë deklarimit të saj duhet të shkruhet fjala kyçe abstract.

Le të provojmë në praktikë. Le të supozojmë që të gjithë pasardhësit e klasës User duhet të kenë metodën increaseRevenue.

Kjo metodë duhet të marrë të ardhurat aktuale të përdoruesit dhe t'i rrisë ato me një vlerë të caktuar, të kaluar si parametër.

Vetë klasa User nuk e di se çfarë saktësisht të ardhurash do të marrë trashëgimtari - në fund të fundit, për punonjësin këto janë paga, ndërsa për studentin - bursa. Prandaj çdo pasardhës do ta implementojë këtë metodë në mënyrën e vet.

Thelbi këtu është se metoda abstrakte e klasës User detyron programuesin të implementojë këtë metodë te pasardhësit, përndryshe PHP do të shfaqë një gabim. Kështu ju, ose një programues tjetër, që punon me kodin tuaj, nuk do të jeni në gjendje të harroni të implementoni metodën e nevojshme te pasardhësi.

Pra, le të provojmë në praktikë. Le të shtojmë metodën abstrakte increaseRevenue në klasën User:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Metodë abstrakte pa trup: abstract public function increaseRevenue($value); } ?>

Le të klasa jonë Employee të mbetet për momentin pa ndryshime. Në këtë rast, edhe nëse nuk krijohet objekt i klasës Employee, por thjesht të ekzekutohet kodi, në të cilin përcaktohen klasat tona, - PHP do të shfaqë një gabim.

Le të shkruajmë tani implementimin e metodës increaseRevenue në klasën Employee:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Le të shkruajmë implementimin e metodës: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Le të kontrollojmë punën e klasës sonë:

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

Le të implementojmë metodën increaseRevenue edhe në klasën Student. Vetëm që tani metoda jonë do të rrisë bursën:

<?php class Student extends User { private $scholarship; // bursë public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Metoda rrit bursën: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

Shtoni në klasën tuaj User të njëjtën metodë abstrakte increaseRevenue. Shkruani implementimin e kësaj metode në klasat Employee dhe Student.

Në klasën Figure bëni metodat abstrakte për marrjen e sipërfaqes dhe perimetrit të figurës.

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