⊗ppOpFnCl 63 of 107 menu

PHP да ООПда абстракт класслар

Фарз қилайлик, сизда User класси бор, ва ундан Employee ва Student класслари мерос олган.

Бунда, сиз Employee ва Student классларининг объектларини яратасиз, лекин User классининг объектларини яратмайсиз, чунки ушбу класс фақат ўзининг меросхўрларининг умусий хусусият ва методларини гуруҳлаш учун ишлатилади.

Бундай ҳолда, User классининг объектларини яратишни мажбурий равишда тақиқлаш мумкин, шу сабаб сиз ёки бошқа программист бирон жерда уларни tasodifan яратмаслиги учун.

Бuning учун абстракт класслар деб аталувчи класслар мавжуд. Абстракт класслар ўзидан мерос олиш учун мўлжалланган класслардир. Бундай классларнинг объектларини яратиб бўлмайди.

Классни абстракт эълон қилиш учун, уни эълон қилишда 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; // хатолик берadi ?>

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