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:

typescriptabstract class User {
  public name: string;
  
  constructor(name: string) {
    this.name = name;
  }
}

La oss lage klassen Student, som arver fra User:

typescriptclass 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:

typescriptclass Employee extends User {
  public salary: number;

  constructor(name: string, salary: number) {
    super(name);
    this.salary = salary;
  }
}
Задание 1

Opprett en abstrakt klasse Figure, som representerer en geometrisk figur. La den ha egenskaper for omkrets og areal.

Задание 2

Lag en klasse Square, som arver fra klassen Figure.

Задание 3

Lag en klasse Rectangle, som arver fra klassen Figure.