⊗ppOpIhOPM 28 of 107 menu

Override dei metodi padre in OOP in PHP

Una classe figlia può sovrascrivere un metodo del padre, creando un metodo con lo stesso nome. Diamo un'occhiata a un esempio. Supponiamo di avere la seguente classe genitore:

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

Creiamo un metodo con lo stesso nome nella classe figlia:

<?php class Student extends User { public function setName($name) { } } ?>

In genere, la sovrascrittura dei metodi del padre serve per modificare o integrare il comportamento di tale metodo. Nel nostro caso, aggiungiamo un controllo sulla lunghezza del nome:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Assicuriamoci che venga chiamato proprio il metodo sovrascritto. Per prima cosa, creiamo un oggetto della classe figlia:

<?php $student = new Student; ?>

Ora chiamiamo il nostro metodo, passandogli un valore corretto:

<?php $student->setName('john'); ?>

Ora chiamiamo il metodo, passandogli un valore non corretto. Come risultato, vedremo un'eccezione generata:

<?php $student->setName(''); // errore ?>

Nella classe User create un getter e un setter per l'età.

Nella classe Employee sovrascrivete il setter dell'età e aggiungete un controllo che verifichi che l'età sia compresa tra 18 e 65 anni.

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