⊗ppOpFnCl 63 of 107 menu

Classi astratte in OOP in PHP

Supponiamo che tu abbia una classe User, e da essa ereditino le classi Employee e Student.

In questo caso, si presuppone che creerai oggetti delle classi Employee e Student, ma non creerai oggetti della classe User, poiché questa classe viene utilizzata solo per raggruppare proprietà e metodi comuni dei suoi eredi.

In questo caso, è possibile vietare forzatamente la creazione di oggetti della classe User, in modo che tu o un altro programmatore non ne crei accidentalmente da qualche parte.

Per questo esistono le cosiddette classi astratte. Le classi astratte sono classi destinate all'ereditarietà da esse. Tuttavia, non è possibile creare oggetti di tali classi.

Per dichiarare una classe astratta, è necessario scrivere la parola chiave abstract nella sua dichiarazione:

<?php abstract class User { } ?>

Quindi, scriviamo l'implementazione di una classe astratta User. Supponiamo che abbia una proprietà privata name, e anche getter e setter per essa:

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

Il tentativo di creare un oggetto della classe User causerà un errore:

<?php $user = new User; // darà un errore ?>

Tuttavia, sarà possibile ereditare dalla nostra classe. Creiamo una classe Employee che erediti dalla nostra classe astratta User:

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

Creiamo un oggetto della classe Employee - tutto funzionerà:

<?php $employee = new Employee; $employee->setName('john'); // metodo del genitore, cioè della classe User $employee->setSalary(1000); // metodo proprio, cioè della classe Employee echo $employee->getName(); // visualizzerà 'john' echo $employee->getSalary(); // visualizzerà 1000 ?>

Crea una classe astratta Figure, che rappresenti una figura geometrica. Lascia che da essa ereditino classi per il cerchio, il rettangolo e il quadrato.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta