- Learn
- Guida PHP teorica
- Le classi astratte
Le classi astratte
Oltre a questo, PHP ha ampliato notevolmente le sue potenzialità introducendo le interfacce e le classi astratte. Un’interfaccia è una classe speciale che definisce solamente la struttura che dovranno obbligatoriamente avere le classi che la implementano. Non può essere istanziata.
<?php
interface ProvaInterfaccia
{
public function mustBeImplemented();
}
class Prova implements ProvaInterfaccia
{
public function mustBeImplemented()
{
// implementazione
}
}
?>
Se una classe non dovesse implementare tutti i metodi definiti nell’interfaccia, PHP restituirebbe un errore.
Le classi astratte invece sono un sistema che permette di definire classi parzialmente completate che lasciano l’implementazione di alcuni metodi alle sottoclassi. Una classe astratta deve essere definita utilizzando la parola chiave abstract; lo stesso vale per quei metodi astratti della classe. Vediamo un esempio:
<?php
abstract class ProvaAbs
{
public function prova()
{
$this->abstractMethod();
}
abstract protected function abstractMethod();
}
class Prova extends ProvaAbs
{
protected function abstractMethod()
{
// metodo richiamato da ProvaAbs::prova()
}
}
?>
Grazie alle interfacce ed alle classi astratte, PHP ha rafforzato notevolmente il suo supporto ai tipi di dato, permettendo l’introduzione del type hinting per i tipi di dato complessi. Possiamo specificare il tipo di oggetto che ci aspettiamo per un parametro di un metodo/funzione demandando a PHP il compito di effettuare il controllo:
<?php
function prova(ProvaAbs $arg)
{
$arg->prova();
}
?>
In questo modo possiamo assicurarci un’integrità delle chiamate che prima era quasi impossibile se non con particolari controlli effettuati a runtime.
Se vuoi aggiornamenti su Le classi astratte inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Filo, l’IOT per tutte le cose da non perdere
Filo è un prodotto che consente di sapere sempre l’esatta posizione dei nostri oggetti. Possiamo ad esempio collegare le chiavi […]