Աբստրակտ մեթոդները OOP-ում TypeScript-ում

Լինում է, որ ժառանգ դասերը պետք է ունենան ընդհանուր մեթոդ, սակայն այդ մեթոդի իրականացումը կախված է կոնկրետ ժառանգից: Այս դեպքում այս մեթոդը կարելի է հայտարարել ծնողի աբստրակտ դասում, առանց գրելու դրա իրականացումը: Եվ ապա ժառանգները կլինեն պարտավոր իրականացնել այդ մեթոդները: Յուրաքանչյուր մեթոդ կոչվում է աբստրակտ և նաև հայտարարվում է օգտագործելով abstract բանալի բառը:

Օրինակի համար վերցնենք մեր աբստրակտ դասը User: Թող այս դասի ժառանգները պարտադիր ունենան show մեթոդը, որը արտածում է օբյեկտի տվյալները:

Այս մեթոդի իրականացումը, սակայն, կախված կլինի ժառանգից: Եկեք User դասում հայտարարենք այս մեթոդը որպես աբստրակտ:

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

Իրականացնենք այս մեթոդը Student ժառանգ դասում:

typescriptclass Student extends User {
  public course: number;

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

Իրականացնենք այս մեթոդը 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

Figure աբստրակտ դասում ստեղծեք աբստրակտ մեթոդներ մակերեսը և պարագիծը ստանալու համար:

Задание 2

Square և Rectangle ժառանգ դասերում գրեք այդ մեթոդների իրականացումը: