⊗ppOpFnCl 63 of 107 menu

PHP-тегі ООП-дегі абстрактты класстар

Сізде User класы бар делік, ал одан Employee және Student кластары мұра етеді.

Бұл ретте сіз Employee және Student кластарының объектілерін жасайсыз деп болжанады, бірақ User класының объектілерін - жаспайсыз, себебі бұл клас тек өз мұрагерлерінің жалпы қасиеттері мен әдістерін топтау үшін қолданылады.

Бұл жағдайда User класының объектілерін жасауды мәжбүрлеп тыйым салуға болады, осылайша сіз немесе басқа бағдарламашы оларды кездейсоқ жасап алмайды.

Бұл үшін абстрактты класстар деп аталатындар бар. Абстрактты класстар олардан мұра ету үшін арналған класстар болып табылады. Бұл ретте мұндай класстардың объектілерін жасауға болмайды.

Класты абстрактты деп жариялау үшін, оны жариялау кезінде abstract кілт сөзін жазу керек:

<?php abstract class User { } ?>

Ендеше, User абстрактты класының реализациясын жазайық. Онда 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; // қате шығарады ?>

Ал біздің кластан мұра етуге болады. User абстрактты класымыздан мұра ететін Employee класын жасайық:

<?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हिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართული한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау