Апстрактне методе у ООП у 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 напишите имплементацију ових
метода.