Le classi astratte devono avere un costruttore? Altrimenti, è comunque buona norma creare il costruttore di una classe astratta?
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");
Ultima modifica di binarysun : 12-08-2009 alle ore 11.55.54
"L'intelligenza è una pianta che va curata continuamente.
Dovreste vedere com'è bello, il mio bonsai."
Rat-man®
[Gradient Text]
[Su che server sei?]
->flickr
Quindi confermato che il costruttore non ci va?
"L'intelligenza è una pianta che va curata continuamente.
Dovreste vedere com'è bello, il mio bonsai."
Rat-man®
[Gradient Text]
[Su che server sei?]
->flickr
Non mi ricordavo che il costruttore viene ereditato. Grazie del chiarimento.