⊗ppOpFnCl 63 of 107 menu

Absztrakt osztályok az OOP-ban PHP-ben

Tegyük fel, hogy van egy User osztálya, amelyből a Employee és a Student osztályok öröklődnek.

Ez esetben feltételezhetjük, hogy a Employee és a Student osztályok objektumait fogjuk létrehozni, de a User osztály objektumait nem, mivel ez az osztály csak az örökösei általános tulajdonságainak és metódusainak csoportosítására szolgál.

Ebben az esetben kényszeríthetjük a User osztály objektumainak létrehozását, hogy Ön vagy egy másik programozzó ne hozhasson létre véletlenül ilyen objektumot.

Erre szolgálnak az úgynevezett absztrakt osztályok. Az absztrakt osztályok olyan osztályok, amelyeket az öröklődésre terveztek. Ugyanakkor az ilyen osztályok objektumait nem lehet létrehozni.

Ahhoz, hogy egy osztályt absztraktként nyilvánítsunk, az osztály deklarálásakor az abstract kulcsszót kell használni:

<?php abstract class User { } ?>

Tehát írjuk meg a User absztrakt osztály implementációját. Legyen egy privát name tulajdonsága, valamint getterek és setterek hozzá:

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

A User osztály objektumának létrehozására tett kísérlet hibát fog eredményezni:

<?php $user = new User; // hibát jelez ?>

Azonban lehetséges lesz örökölni az osztályunktól. Készítsünk egy Employee osztályt, amely öröklődik az absztrakt User osztályunktól:

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

Hozzunk létre egy Employee osztályú objektumot - minden működni fog:

<?php $employee = new Employee; $employee->setName('john'); // szülő metódusa, azaz a User osztályé $employee->setSalary(1000); // saját metódusa, azaz az Employee osztályé echo $employee->getName(); // kiírja 'john'-t echo $employee->getSalary(); // kiírja 1000-et ?>

Készítsen egy Figure absztrakt osztályt, amely egy geometriai alakzatot ábrázol. Örököljön belőle a kör, a téglalap és a négyzet osztálya.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás