Sovrascrivere i metodi del genitore in OOP in JavaScript
Una classe figlia può sovrascrivere un metodo del genitore, creando un metodo con lo stesso nome. Vediamo un esempio. Supponiamo di avere la seguente classe genitore:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Creiamo un metodo con lo stesso nome nella classe figlia:
class Student extends User {
setName(name) {
}
}
Di solito, la sovrascrittura dei metodi del genitore serve per modificare o integrare il comportamento di tale metodo. Nel nostro caso, aggiungiamo un controllo sulla lunghezza del nome:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Assicuriamoci che venga chiamato proprio il metodo sovrascritto. Per prima cosa creiamo un oggetto della classe figlia:
let student = new Student;
Ora chiamiamo il nostro metodo, passandogli un valore corretto:
student.setName('john');
Ora chiamiamo il metodo, passando un valore non corretto. Di conseguenza, vedremo nella console un errore generato:
student.setName(''); // errore
Nella classe User create
un getter e un setter per l'età.
Nella classe Employee sovrascrivete
il setter dell'età e aggiungete un controllo
per verificare che l'età sia compresa
tra 18 e 65 anni.