⊗ppOpFnCl 63 of 107 menu

Abstraktiluokat OOP:ssa PHP:ssä

Oletetaan, että sinulla on luokka User, ja sitä perivät luokat Employee ja Student.

Oletetaan, että aiot luoda Employee- ja Student-luokkien olioita, mutta et User-luokan olioita, koska tätä luokkaa käytetään vain ryhmittelyyn perijöidensä yhteisiä ominaisuuksia ja metodeja.

Tässä tapauksessa voidaan pakottaa kieltämään User-luokan olioiden luonti, jotta sinä tai toinen ohjelmoija vahingossa ei luo niitä.

Tätä varten on olemassa niin kutsutut abstraktit luokat. Abstraktit luokat ovat luokkia, jotka on tarkoitettu perittäviksi. Samalla tällaisten luokkien olioita ei voi luoda.

Luokan julistamiseksi abstraktiksi sen ilmoituksen yhteydessä on kirjoitettava avainsana abstract:

<?php abstract class User { } ?>

Joten, kirjoitetaan abstraktin luokan User toteutus. Olkoon siellä yksityinen ominaisuus name, sekä getterit ja setterit sille:

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

Yritys luoda User-luokan olio aiheuttaa virheen:

<?php $user = new User; // antaa virheen ?>

Mutta periytyä luokastamme on mahdollista. Tehdään luokka Employee, joka perii abstraktista luokastamme User:

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

Luodaan Employee-luokan olio - kaikki toimii:

<?php $employee = new Employee; $employee->setName('john'); // vanhemman metodi, eli User-luokan $employee->setSalary(1000); // oma metodi, eli Employee-luokan echo $employee->getName(); // tulostaa 'john' echo $employee->getSalary(); // tulostaa 1000 ?>

Tee abstrakti luokka Figure, joka edustaa geometristä kuviota. Olkoon siitä perivät luokat ympyrälle, suorakulmiolle ja neliölle.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää