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

Լինում են իրավիճակներ, երբ մենք ունենք ծնող դաս, որը պարունակում է ընդհանուր հատկություններ և մեթոդներ, իսկ նրանից ժառանգում են ժառանգ դասերը:

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

Այս դեպքում, որպեսզի բացահայտորեն արգելենք ծնող դասի օբյեկտների ստեղծումը, կարող ենք այն հայտարարել աբստրակտ: Դա կատարվում է abstract հիմնաբառի միջոցով:

Դիտարկենք օրինակով: Վերցնենք մեր User դասը և հայտարարենք այն աբստրակտ:

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

Ստեղծենք Student դասը, որն ժառանգում է User-ից:

typescriptclass Student extends User {
  public course: number;

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

Ստեղծենք Employee դասը, որն ժառանգում է User-ից:

typescriptclass Employee extends User {
  public salary: number;

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

Ստեղծեք աբստրակտ Figure դաս, որը ներկայացնում է երկրաչափական պատկեր: Թող այն ունենա պարագծի և մակերեսի հատկություններ:

Задание 2

Ստեղծեք Square դաս, որն ժառանգում է Figure դասից:

Задание 3

Ստեղծեք Rectangle դաս, որն ժառանգում է Figure դասից: