⊗ppOpFnMt 64 of 107 menu

Աբստրակտ մեթոդները OOP-ում 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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել