⊗ppOpFnMt 64 of 107 menu

Абстрактные методҳо дар ООП дар PHP

Абстрактӣ синфҳо инчунин метавонанд дошта бошанд абстрактӣ методҳо. Чунин методҳо набояд дошта бошанд амалӣ кардани, балки заруранд барои он, ки нишон диҳанд, ки чунин методҳо бояд дар фарзандон бошад. Ва худ амалӣ кардани чунин методҳо - аллакай вазифаи фарзандон аст.

Барои он ки методро абстрактӣ эълон кунед, дар вақти эълони он бояд навишт калимаи abstract.

Биёед дар амалӣ санҷем. Фарз кунем, ки гумон меравад, ки ҳама фарзандҳои синфи User бояд дошта бошанд методро increaseRevenue.

Ин метод бояд даромади ҷорӣ корбаро гирад ва онро ба миқдори муайян зиёд кунад, ки бо параметр фиристода шудааст.

Худи синфи User намедонад, ки кадом даромад фарзанд хоҳад гирифт - зеро барои коргар ин ҳаққи меҳнат аст, ва барои донишҷӯ - стипендия. Аз ин рӯ ҳар як фарзанд ин методро амалӣ хоҳад кард ба таври хеш.

Мазмун дар ин аст, ки абстрактӣ методаи синф User барномасозро маҷбур мекунад, ки амалӣ кунад ин метод дар фарзандон, вагарна PHP хаторо медиҳад. Ҳамин тавр шумо, ё дигар барномасоз, ки бо рамзи шумо кор мекунад, ҳаргиз наметавонад фаромӯш кунед, ки амалӣ кунед методро дар фарзанд.

Пас, биёед дар амалӣ санҷем. Илова кунем абстрактӣ методро increaseRevenue дар синфи User:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Абстрактӣ метод бе тана: abstract public function increaseRevenue($value); } ?>

Бигзор синфи мо Employee ҳоло боқӣ бимонад бе тағйирот. Дар ин ҳолат, ҳатто агар насохтани объекти синфи Employee, аммо танҳо коркардро оғоз кунад, ки дар он муайян карда мешаванд синфҳои мо, - PHP хаторо медиҳад.

Биёед ҳоло нависем амалӣ кардани метода increaseRevenue дар синфи Employee:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Амалӣ кардани методро навишем: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Коркарди синфи моро тафтиш кунем:

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

Амалӣ кунем методро increaseRevenue ва дар синфи Student. Аммо акнун мо метода мо зиёд хоҳад кард аллакай стипендия:

<?php class Student extends User { private $scholarship; // стипендия public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Метод стипендияро зиёд мекунад: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

Илова кунед дар синфи шумо User ҳамин абстрактӣ методро increaseRevenue. Нависед амалӣ кардани ин метод дар синфҳо Employee ва Student.

Дар синфи Figure абстрактӣ созед методҳо барои гирифтани масоҳат ва периметри шакл.

Тоҷикӣ
AfrikaansAzə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
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан