Metodat Abstrakte në OOP në TypeScript

Ndonjëherë ndodh që klasat e pasardhësit duhet të kenë një metodë të përbashkët, megjithatë, zbatimi i kësaj metode varet nga pasardhësi specifik. Në këtë rast kjo metodë mund të deklarohet në klasën abstrakte të prindit, pa shkruar zbatimin e saj. Dhe atëherë pasardhësit do të jenë të detyruar të zbatojnë këto metoda. Metoda të tilla quhen abstrakte dhe gjithashtu deklarohen duke përdorur fjalën kyçe abstract.

Le të marrim për shembull klasën tonë abstrakte User. Le të pasardhësit e kësaj klase duhet patjetër të kenë metodën show, që nxjerr të dhënat e objektit.

Zbatimi i kësaj metode, megjithatë, do të varet nga pasardhësi. Le të deklarojmë këtë metodë abstrakte në klasën User:

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

Le ta zbatojmë këtë metodë në klasën-pasardhës Student:

typescriptclass Student extends User {
  public course: number;

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

Le ta zbatojmë këtë metodë në klasën-pasardhës 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

Në klasën abstrakte Figure bëni metoda abstrakte për marrjen e sipërfaqes dhe perimetrit.

Задание 2

Në klasat-pasardhëse Square dhe Rectangle shkruani zbatimin e këtyre metodave.