⊗ppOpFnCl 63 of 107 menu

Abstracte klassen in OOP in PHP

Stel dat je een klasse User hebt, en daarvan erven de klassen Employee en Student.

Tegelijkertijd wordt aangenomen dat je objecten van de klassen Employee en Student zult aanmaken, maar objecten van de klasse User - niet, omdat deze klasse alleen gebruikt wordt voor het groeperen van gemeenschappelijke eigenschappen en methodes van zijn erfgenamen.

In dit geval kan het aanmaken van objecten van de klasse User geforceerd verboden worden, zodat jij of een andere programmeur ze niet per ongeluk ergens aanmaken.

Hiervoor bestaan zogenaamde abstracte klassen. Abstracte klassen zijn klassen die bedoeld zijn voor overerving ervan. Tegelijkertijd kunnen van dergelijke klassen geen objecten aangemaakt worden.

Om een klasse abstract te declareren, moet je bij de declaratie het sleutelwoord abstract schrijven:

<?php abstract class User { } ?>

Laten we dus de implementatie van een abstracte klasse User schrijven. Stel dat deze een private eigenschap name heeft, en ook getters en setters ervoor:

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

Een poging om een object van de klasse User te maken zal een fout veroorzaken:

<?php $user = new User; // geeft een foutmelding ?>

Maar erven van onze klasse zal wel mogelijk zijn. Laten we een klasse Employee maken, die erft van onze abstracte klasse User:

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

Laten we een object van de klasse Employee aanmaken - alles zal werken:

<?php $employee = new Employee; $employee->setName('john'); // methode van de ouder, d.w.z. klasse User $employee->setSalary(1000); // eigen methode, d.w.z. klasse Employee echo $employee->getName(); // toont 'john' echo $employee->getSalary(); // toont 1000 ?>

Maak een abstracte klasse Figure, die een geometrische figuur voorstelt. Laat daarvan klassen voor cirkel, rechthoek en vierkant erven.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren