Méthodes abstraites en POO dans TypeScript
Il arrive que les classes descendantes doivent
avoir une méthode commune, cependant, l'implémentation de cette
méthode dépend de la descendante spécifique. Dans
ce cas, cette méthode peut être déclarée dans
la classe parente abstraite, sans écrire
son implémentation. Et alors les descendantes seront
obligées d'implémenter ces méthodes. De telles
méthodes sont appelées abstraites et
sont également déclarées à l'aide du mot-clé
abstract.
Prenons pour exemple notre classe abstraite
User. Supposons que les héritiers de cette
classe doivent obligatoirement avoir une méthode show,
affichant les données de l'objet.
L'implémentation de cette méthode, cependant,
dépendra de la descendante. Déclarons cette méthode comme abstraite dans la classe User :
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Implémentons cette méthode dans la classe descendante Student :
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Implémentons cette méthode dans la classe descendante Employee :
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
Dans la classe abstraite Figure, créez
des méthodes abstraites pour obtenir l'aire
et le périmètre.
Dans les classes descendantes Square et
Rectangle, écrivez l'implémentation de ces
méthodes.