Abstraktní metody v OOP v TypeScript
Stává se, že třídy-potomci musí mít
společnou metodu, ale implementace této
metody závisí na konkrétním potomkovi. V
tomto případě lze tuto metodu deklarovat v
abstraktní rodičovské třídě, aniž bychom
napsali její implementaci. A potom potomci
budou povinni tyto metody implementovat.
Takové metody se nazývají abstraktní a
také se deklarují pomocí klíčového slova
abstract.
Vezměme si pro příklad naši abstraktní
třídu User. Ať dědici této třídy
musí mít metodu show,
která vypisuje data objektu.
Implementace této metody však bude
záviset na potomkovi. Pojďme v třídě User
deklarovat tuto metodu jako abstraktní:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Pojďme implementovat tuto metodu v třídě-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;
}
}
Pojďme implementovat tuto metodu v třídě-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 abstraktní třídě Figure vytvořte
abstraktní metody pro získání plochy
a obvodu.
V třídách-potomcích Square a
Rectangle napište implementaci těchto
metod.