Abstraktné metódy v OOP v TypeScript
Stáva sa, že triedy-potomkovia musia mať
spoločnú metódu, no implementácia tejto
metódy závisí od konkrétneho potomka. V
tomto prípade je možné túto metódu deklarovať v
abstraktnej triede rodiča, bez napísania
jej implementácie. A potomkovia budú
povinní implementovať tieto metódy. Takéto
metódy sa nazývajú abstraktné a
tiež sa deklarujú pomocou kľúčového slova
abstract.
Vezmime si napríklad našu abstraktnú triedu
User. Nech dedičia tejto
triedy musia mať metódu show,
ktorá zobrazí dáta objektu.
Implementácia tejto metódy však bude
závisieť od potomka. Deklarujme túto metódu ako abstraktnú v triede User:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Implementujme túto metódu v triede-potomkovi Student:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Implementujme túto metódu v triede-potomkovi Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
V abstraktnej triede Figure vytvorte
abstraktné metódy na získanie plochy
a obvodu.
V triedach-potomkoch Square a
Rectangle napíšte implementáciu týchto
metód.