Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Ereditarietà

Definire la relazione di ereditarietà tra le classi (kw 'extends'), invocare il costruttore e i metodi della classe base (kw 'super').
Definire la relazione di ereditarietà tra le classi (kw 'extends'), invocare il costruttore e i metodi della classe base (kw 'super').
Link copiato negli appunti

Definire una relazione di ereditarietà tra le classi è molto semplice in TypeScript. Con la stessa sintassi di ES6, possiamo utilizzare la parola chiave extends per indicare che una classe estende (o deriva o eredita da) una classe.

Il seguente esempio mostra come definire una classe Studente che deriva dalla classe Persona che abbiamo visto prima:

enum Materie {Storia, Informatica, Matematica, Scienze}; 
class Studente extends Persona {
    materie: Materie[]; 
	constructor(nome, cognome) {
		super(nome, cognome);
    }
}

All'interno del costruttore abbiamo invocato il costruttore della classe base, cioè la classe Persona da cui deriva Studente, tramite la parola chiave super. Questo fa sì che una nuova istanza di Studente inizializzi le proprietà nome e cognome ereditate da Persona.

Possiamo utilizzare la parola chiave super anche per poter accedere ai metodi della classe base. Ad esempio, potremmo definire un metodo che restituisce il nome e cognome completo preceduto dal titolo "Studente":

getNomeCompletoConTitolo() {
	return "Studente " + super.getNomeCompleto();
}

Naturalmente ciascuna istanza della classe Studente avrà i membri della classe base:

var marioRossi = new Studente("Mario", "Rossi"); 
marioRossi.materie = [Materie.Storia, Materie.Informatica]; 
console.log(marioRossi.nome);			//Mario
console.log(marioRossi.cognome);		//Rossi

Come possiamo vedere, la sintassi di TypeScript che, ricordiamo, coincide in questo caso con quella di ES6, semplifica notevolmente la gestione dell'ereditarietà rispetto all'approccio classico di JavaScript rendendola molto simile a quella dei linguaggi di programmazione orientata agli oggetti tradizionali.


Ti consigliamo anche