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



Чат с GPT Компилятор