Abstrakta metoder i OOP i TypeScript

Det händer att underordnade klasser måste ha en gemensam metod, men implementeringen av denna metoden beror på den specifika underordnade. I i det här fallet kan denna metod deklareras i den abstrakta föräldraklassen, utan att skriva dess implementering. Och då kommer de underordnade att vara skyldiga att implementera dessa metoder. Sådana metoder kallas abstrakta och deklareras också med hjälp av nyckelordet abstract.

Låt oss som exempel ta vår abstrakta klass User. Låt arvingar till denna klass måste ha metoden show, som visar objektets data.

Implementeringen av denna metod kommer dock att bero på den underordnade. Låt oss i klassen User deklarera denna metod som abstrakt:

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

Låt oss implementera denna metod i den underordnade klassen Student:

typescriptclass Student extends User {
  public course: number;

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

Låt oss implementera denna metod i den underordnade klassen 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 abstrakta klassen Figure, skapa abstrakta metoder för att få arean och omkretsen.

Задание 2

I de underordnade klasserna Square och Rectangle, skriv implementeringen av dessa metoder.