აბსტრაქტული მეთოდები OOP-ში 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 დაწერეთ ამ
მეთოდების რეალიზაცია.