Abstrakte OOP-klasser i TypeScript
Det oppstår situasjoner der vi har en foreldreklasse som inneholder felles egenskaper og metoder, og subklasser arver fra den.
Samtidig kan det være slik at vi vil opprette objekter av subklassene, men ikke av foreldreklassen. Den trenger vi bare for å gruppere felles egenskaper og metoder.
I dette tilfellet, for å eksplisitt forby oppretting
av objekter av foreldreklassen, kan vi
erklære den abstrakt. Dette
gjøres ved hjelp av nøkkelordet abstract.
La oss se på et eksempel. La oss ta
klassen vår User og erklære den abstrakt:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
La oss lage klassen Student, som arver
fra User:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
La oss lage klassen Employee, som arver
fra User:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Opprett en abstrakt klasse Figure,
som representerer en geometrisk figur.
La den ha egenskaper for omkrets
og areal.
Lag en klasse Square, som arver
fra klassen Figure.
Lag en klasse Rectangle, som arver
fra klassen Figure.