აბსტრაქტული OOP კლასები TypeScript-ში
ხდება სიტუაციები, როდესაც ჩვენ გვაქვს მშობელი კლასი, რომელიც შეიცავს ზოგად თვისებებს და მეთოდებს, და მისგან ქვემოთ მემკვიდრეობით მიიღება შვილობილი კლასები.
ამ შემთხვევაში შეიძლება ისე იყოს, რომ ჩვენ შევქმნით შვილობილი კლასების ობიექტებს, მაგრამ არა მშობელი კლასის. ის ჩვენთვის მხოლოდ საჭიროა ზოგადი თვისებებისა და მეთოდების დასაჯგუფებლად.
ამ შემთხვევაში, რათა ცხადად ავკრძალოთ მშობელი კლასის
ობიექტების შექმნა, შეგვიძლია
გამოვაცხადოთ ის აბსტრაქტულად. ეს
კეთდება საკვანძო სიტყვის abstract გამოყენებით.
მოდით შევხედოთ მაგალითს. ავიღოთ ჩვენი
კლასი User და გამოვაცხადოთ ის აბსტრაქტულად:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
შევქმნათ კლასი Student, რომელიც მემკვიდრეობით
მიიღებს User-ისგან:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
შევქმნათ კლასი Employee, რომელიც მემკვიდრეობით
მიიღებს User-ისგან:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
შექმენით აბსტრაქტული კლასი Figure,
რომელიც წარმოადგენს გეომეტრიულ ფიგურას.
მასში იყოს თვისებები პერიმეტრისთვის
და ფართობისთვის.
შექმენით კლასი Square, რომელიც მემკვიდრეობით მიიღებს
კლას Figure-ისგან.
შექმენით კლასი Rectangle, რომელიც მემკვიდრეობით მიიღებს
კლას Figure-ისგან.