• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Ereditarietà

ptm

Utente Master
Autore del topic
13 Maggio 2008
2.716
62
Miglior risposta
0
Ereditarietà

Come abbiamo visto nell'Introduzione agli oggetti, l'ereditarietà è uno dei concetti più importanti nel paradigma ad oggetti. In PHP è consentita l'ereditarietà singola che permette ad una classe figlia (o sottoclasse) di ereditare tutti i metodi e attributi di una classe padre (o superclasse). In pratica una classe figlia può essere vista come una "specializzazione" della classe padre.

Per esempio
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
Si nota che nella sottoclasse Studente si accede al metodo setNome che non è stato dichiarato nella sottoclasse, ma è stato ereditato dalla superclasse Persona.
La parola chiave extends denota che classe deve estendere una certa classe figlia (che quindi andrà a ereditare i metodi e gli attributi della classe padre); attenzione però che gli attributi e i metodi private della classe padre non potranno essere visibili alla classe figlia, ma se si vuole accedervi bisognerà farlo attraverso altri metodi definiti public o protected (nell'esempio $nome non è visibile alla classe figlia, ma vi si può accedere utilizzando i metodi getNome e setNome). Quindi se il costruttore di Studente fosse fatto così
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
verrebbe sollevato un errore in quanto stiamo tentando di accedere ad un attributo non visibile (per maggiori info -> http://www.sciax2.it/forum/guide-tutorial/dichiarare-classe-686609.html )

N.B.: ereditarietà singola significa che ciascuna classe può ereditare da una sola classe; esistono altre tecniche che permettono di superare questo limite.
 
  • Like
Reactions: 3 people