Абстрактныя метады в ААП у TypeScript
Бывае так, што ў класаў-нашчадкаў павінен
быць агульны метад, аднак, рэалізацыя гэтага
метаду залежыць ад канкрэтнага нашчадка. У
гэтым выпадку гэты метад можна аб'явіць у
абстрактным класе бацькі, не напісаўшы
яго рэалізацыю. І тады нашчадкі будуць
абавязаны рэалізаваць гэтыя метады. Такія
метады называюцца абстрактнымі і
таксама аб'яўляюцца з дапамогай ключавога слова
abstract.
Давайце для прыкладу возьмем наш абстрактны
клас User. Хай нашчадкі гэтага
класа абавязкова павінны мець метад show,
які выводзіць дадзеныя аб'екта.
Рэалізацыя гэтага метаду, аднак, будзе
залежаць ад нашчадка. Давайце ў класе User
аб'явім гэты метад абстрактным:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Рэалізуем гэты метад у класе-нашчадку Student:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Рэалізуем гэты метад у класе-нашчадку Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
У абстрактным класе Figure зрабіце
абстрактныя метады для атрымання плошчы
і перыметра.
У класах-нашчадках Square і
Rectangle напішыце рэалізацыю гэтых
метадаў.