⊗ppOpFnMt 64 of 107 menu

Abstrakte Metodes in OOP in PHP

Abstrakte klasse kan ook abstrakte metodes bevat. Sulke metodes moet nie implementering hê nie, en is nodig om aan te dui dat sulke metodes by afstammelinge moet wees. En die werklike implementering van sulke metodes is reeds die taak van die afstammelinge.

Om 'n metode as abstrak te verklaar, moet die sleutelwoord abstract tydens die verklaaring daarvan geskryf word.

Kom ons probeer dit in die praktyk. Laat ons aanneem dat alle afstammelinge van die klas User die metode increaseRevenue moet hê.

Hierdie metode moet die huidige inkomste van die gebruiker neem en dit met 'n sekere waarde verhoog, wat as parameter oorgedra word.

Die klas User self weet nie watter soort inkomste die erfgenaam sal hê nie - vir 'n werknemer is dit 'n salaris, en vir 'n student is dit 'n beurs. Daarom sal elke afstammeling hierdie metode op sy eie manier implementeer.

Die kern is dat die abstrakte metode van die klas User die programmeerder dwing om hierdie metode in die afstammelinge te implementeer, anders sal PHP 'n fout gee. Sodoende kan jy, of 'n ander programmeerder, wat met jou kode werk, op geen manier vergeet om die nodige metode te implementeer in die afstammeling nie.

So, kom ons probeer dit in die praktyk. Laat ons die abstrakte metode increaseRevenue byvoeg in die klas User:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Abstrakte metode sonder liggaam: abstract public function increaseRevenue($value); } ?>

Laat ons klas Employee vir eers sonder veranderinge bly. In hierdie geval, selfs al word nie 'n objek van die klas Employee geskep nie, maar net die kode waar ons klasse gedefinieer word, gestart, - sal PHP 'n fout gee.

Kom ons skryf nou die implementering van die metode increaseRevenue in die klas Employee:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Laat ons die metode implementering skryf: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Kom ons toets die werk van ons klas:

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

Laat ons die metode increaseRevenue ook implementeer in die klas Student. Net dat nou ons metode die beurs sal verhoog:

<?php class Student extends User { private $scholarship; // beurs public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Metode verhoog die beurs: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

Voeg by jou klas User dieselfde abstrakte metode increaseRevenue by. Skryf die implementering van hierdie metode in die klasse Employee en Student.

Maak in die klas Figure abstrakte metodes om die oppervlakte en omtrek van die figuur te kry.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp