⊗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 файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу