⊗ppOpFnCl 63 of 107 menu

Աբստրակտ դասերը OOP-ում PHP-ում

Ենթադրենք՝ ունեք User դաս, և դրանից ժառանգում են Employee և Student դասերը:

Ընդ որում, ենթադրվում է, որ դուք կստեղծեք Employee և Student դասերի օբյեկտներ, բայց User դասի օբյեկտներ՝ ոչ, քանի որ այս դասն օգտագործվում է միայն իր ժառանգների ընդհանուր հատկություններն ու մեթոդները խմբավորելու համար:

Այս դեպքում կարելի է ստիպողականորեն արգելել User դասի օբյեկտների ստեղծումը, որպեսզի դուք կամ մեկ այլ ծրագրավորող ինչ-որ տեղ դրանք պատահականաբար չստեղծեք:

Դրա համար գոյություն ունեն այսպես կոչված աբստրակտ դասեր: Աբստրակտ դասերը դասեր են, որոնք նախատեսված են դրանցից ժառանգելու համար: Ընդ որում, այդպիսի դասերի օբյեկտներ չի կարելի ստեղծել:

Որպեսզի դասը հայտարարվի որպես աբստրակտ, անհրաժեշտ է դրա հայտարարման ժամանակ գրել abstract բանալի բառը:

<?php abstract class User { } ?>

Այսպիսով, եկեք գրենք User աբստրակտ դասի իրականացումը: Ենթադրենք, որ այն կունենա private name հատկություն, ինչպես նաև դրա համար գետտերներ և սետտերներ:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } } ?>

User դասի օբյեկտ ստեղծելու փորձը կառաջացնի սխալ:

<?php $user = new User; // կտա սխալ ?>

Սակայն մեր դասից ժառանգելը հնարավոր կլինի: Ստեղծենք Employee դասը, որն կժառանգի մեր աբստրակտ դասից User:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } } ?>

Ստեղծենք Employee դասի օբյեկտ - ամեն ինչ կաշխատի:

<?php $employee = new Employee; $employee->setName('john'); // ծնողի մեթոդը, այսինքն՝ User դասի $employee->setSalary(1000); // սեփական մեթոդը, այսինքն՝ Employee դասի echo $employee->getName(); // կտպի 'john' echo $employee->getSalary(); // կտպի 1000 ?>

Ստեղծեք աբստրակտ դաս 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-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել