⊗ppOpFnCl 63 of 107 menu

Klasat Abstrakte në OOP në PHP

Le të supozojmë se keni një klasë User, dhe prej saj trashëgohen klasat Employee dhe Student.

Në këtë rast, supozohet se ju do të krijoni objekte të klasave Employee dhe Student, por objektet e klasës User - nuk do t'i krijoni, sepse kjo klasë përdoret vetëm për grupimin e vetive dhe metodave të përgjithshme të trashëgimtarëve të saj.

Në këtë rast mund të ndalohet me forcë krijimi i objekteve të klasës User, në mënyrë që ju ose një programues tjetër diku aksidentalisht të mos i krijoni ato.

Për këtë ekzistojnë të ashtuquajturat klasa abstrakte. Klasat abstrakte përfaqësojnë klasa të destinuara për trashëgim prej tyre. Në këtë rast, objektet e këtyre klasave nuk mund të krijohen.

Që të deklarohet një klasë si abstrakte, duhet të shkruhet fjala kyçe abstract gjatë deklarimit të saj:

<?php abstract class User { } ?>

Pra, le të shkruajmë implementimin e klasës abstrakte User. Le të ketë një veti private name, si dhe getters dhe setters për të:

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

Përpjekja për të krijuar një objekt të klasës User do të shkaktojë gabim:

<?php $user = new User; // do të japë gabim ?>

Por nga ana tjetër, do të jetë e mundur të trashëgohet nga klasa jonë. Le të bëjmë klasën Employee, e cila do të trashëgojë nga klasa jonë abstrakte User:

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

Le të krijojmë një objekt të klasës Employee - gjithçka do të funksionojë:

<?php $employee = new Employee; $employee->setName('john'); // metoda e prindit, d.m.th. e klasës User $employee->setSalary(1000); // metoda e vet, d.m.th. e klasës Employee echo $employee->getName(); // do të shfaqë 'john' echo $employee->getSalary(); // do të shfaqë 1000 ?>

Bëni një klasë abstrakte Figure, që përfaqëson një figurë gjeometrike. Le të trashëgojnë prej saj klasat për rrethin, drejtkëndëshin dhe katrorin.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo