TypeScript'te Soyut OOP Sınıfları
Bazen öyle durumlar olur ki, ortak özellikler ve metotlar içeren bir ebeveyn sınıfımız vardır, ve ondan alt sınıflar miras alır.
Bu durumda, alt sınıfların nesnelerini oluşturabiliriz ama eveveyn sınıfın nesnelerini oluşturmayız. Ebeveyn sınıf sadece ortak özellikleri ve metotları gruplamak için gereklidir.
Bu durumda, ebeveyn sınıfın nesnelerinin oluşturulmasını açıkça yasaklamak için
onu soyut olarak ilan edebiliriz. Bu
abstract anahtar kelimesi kullanılarak yapılır.
Bir örnek üzerinden inceleyelim. User sınıfımızı alalım
ve onu soyut olarak ilan edelim:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
User sınıfından miras alan Student
sınıfını oluşturalım:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
User sınıfından miras alan Employee
sınıfını oluşturalım:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Geometrik bir şekli temsil eden soyut bir Figure
sınıfı oluşturun. İçinde çevre ve alan için özellikler olsun.
Figure sınıfından miras alan Square
sınıfını oluşturun.
Figure sınıfından miras alan Rectangle
sınıfını oluşturun.