📞 super — chiamare il constructor (o i metodi) del genitore
super(...) nel constructor chiama il constructor della classe genitore, passandogli gli argomenti necessari. È obbligatorio chiamarlo prima di usare this in una classe che usa extends.
class Studente extends Persona {
constructor(nome, corso) {
super(nome); // ⚠️ deve essere la PRIMA istruzione, prima di ogni uso di 'this'
this.corso = corso;
}
// Puoi anche "sovrascrivere" (override) un metodo del genitore:
presentati() {
super.presentati(); // chiama comunque la versione originale del genitore...
console.log(`Studio ${this.corso}`); // ...e aggiunge qualcosa in più
}
}
const marco = new Studente('Marco', 'Full Stack');
marco.presentati();
// → Sono Marco
// → Studio Full Stack
⚠️ Se dimentichi super(nome) in una classe che estende un'altra, JavaScript genera un errore appena provi a usare this nel constructor — la chiamata a super deve avvenire prima di qualsiasi riferimento a this.