Abstraktsed OOP klassid TypeScriptis
On olukordi, kus meil on vanemaklass, mis sisaldab üldisi omadusi ja meetodeid, ja sellest pärivad alamklassid.
Samuti võib juhtuda, et loome alamklasside objekte, kuid mitte vanemaklassi objekte. See on meile vajalik vaid üldiste omaduste ja meetodite grupeerimiseks.
Sel juhul, et selgesõnaliselt keelata vanemaklassi
objektide loomist, saame selle
deklareerida abstraktsena. Seda
tehakse võtmesõna abstract abil.
Vaatame näidet. Võtame oma klassi
User ja deklareerime selle abstraktsena:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Teeme klassi Student, mis pärineb
klassist User:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Teeme klassi Employee, mis pärineb
klassist User:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Looge abstraktne klass Figure,
mis esindab geomeetrilist kujundit.
Olgu sellel omadused perimeetri
ja pindala jaoks.
Tegelege klassiga Square, mis pärineb
klassist Figure.
Tegelege klassiga Rectangle, mis pärineb
klassist Figure.