Le classi astratte devono avere un costruttore? Altrimenti, è comunque buona norma creare il costruttore di una classe astratta?
Printable View
Le classi astratte devono avere un costruttore? Altrimenti, è comunque buona norma creare il costruttore di una classe astratta?
Certo che deve avere un costruttore, è molto più simile ad una classe concreta che ad un'interfaccia
Inoltre è sempre necessario un costruttore se sono presenti variabili d'istanza per una loro inizializzazione priva di ambiguità
e anche un distruttore? come deve essere fatto?
Il distruttore è già meno importante
Sostanzialmente dovrebbe compiere le operazioni inverse del costruttore ma crearlo per dereferenziare delle variabili (in un linguaggio provvisto di garbage collector) è esagerato; invece ha un senso se la classe apre uno o più file (o stream) con il proprio costruttore, utilizzando il distruttore ci si può assicurare che i file siano stati effettivamente chiusi
Esempio (non ricordo perfettamente la sintassi PHP)
Codice PHP:abstract class utente
{
private $nick
abstract function Carica();
public function __construct($nick){
$this->nick = $nick
}
public function GetNick(){
return $this->nick
}
}
class UtenteForum extends Utente
{
public function Carica(){
//carico l'utente getnick()
}
public function GetNumeroPost(){
}
}
pippo = new UtenteForum("tanuzzo");
//ma non posso fare
pippo = new Utente("concetta");
Quindi confermato che il costruttore non ci va?
Non mi ricordavo che il costruttore viene ereditato. Grazie del chiarimento.