Abstrakte metoder i OOP i TypeScript

Det sker, at underklasser skal have en fælles metode, men implementeringen af denne metode afhænger af den konkrete underklasse. I sådanne tilfælde kan metoden erklæres i den abstrakte forældreklasse uden at skrive dens implementering. Og så vil underklasserne være forpligtet til at implementere disse metoder. Sådanne metoder kaldes abstrakte og er også erklæret ved hjælp af nøgleordet abstract.

Lad os for eksempel tage vores abstrakte klasse User. Antag, at arvinger af denne klasse skal have en metode show, som viser objektets data.

Implementeringen af denne metode vil dog afhænge af underklassen. Lad os i klassen User erklære denne metode som abstrakt:

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

Lad os implementere denne metode i underklassen Student:

typescriptclass Student extends User {
  public course: number;

  constructor(name: string, course: number) {
    super(name);
    this.course = course;
  }
  
  show() {
    return this.name + ' ' + this.course;
  }
}

Lad os implementere denne metode i underklassen Employee:

typescriptclass Employee extends User {
  public salary: number;

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

I den abstrakte klasse Figure skal du lave abstrakte metoder til at få arealet og omkredsen.

Задание 2

I underklasserne Square og Rectangle skal du skrive implementeringen af disse metoder.