Metodi astratti in OOP in TypeScript
Succede che le classi figlie devono
avere un metodo comune, tuttavia, l'implementazione di questo
metodo dipende dal figlio specifico. In
questo caso, questo metodo può essere dichiarato nella
classe astratta genitore, senza scriverne
l'implementazione. E poi i figli saranno
obbligati a implementare questi metodi. Tali
metodi sono chiamati metodi astratti e
sono anche dichiarati utilizzando la parola chiave
abstract.
Prendiamo come esempio la nostra classe astratta
User. Supponiamo che le classi che ereditano da questa
classe debbano obbligatoriamente avere un metodo show,
che visualizza i dati dell'oggetto.
L'implementazione di questo metodo, tuttavia,
dipenderà dalla classe figlia. Dichiriamo questo metodo come astratto nella classe User:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Implementiamo questo metodo nella classe figlia Student:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Implementiamo questo metodo nella classe figlia Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
Nella classe astratta Figure create
metodi astratti per ottenere l'area
e il perimetro.
Nelle classi figlie Square e
Rectangle scrivete l'implementazione di questi
metodi.