TypeScript-daky protected modifikatory

Hususy aýratynlyklar we usullar warisler tarapyndan miras alynmaýar. Emma käwagt, bir aýratynlyk ýa-da usul daşardan elýeterli bolmaly däl, ýöne warisler tarapyndan miras alynmaly. Bu ýagdaýda protected modifikatory ulanylmaly.

Geliň amaly görkezeliň. Bizim User klasymyzda cape usulyny protected modifikatory bilen goragly hökmünde belleýäris:

typescriptclass User {
  protected cape(str: string) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

User klasymyzdan miras alýan Student klasyny dözedeliň:

typescriptclass Student extends User {
  private name: string;
  
  constructor(name: string) {
    super();
    this.name = name;
  }
}

Ady çap edýän usul goşalyň:

typescriptclass Student extends User {
  private name: string;
  
  constructor(name: string) {
    super();
    this.name = name;
  }
  
  public showName(): string {
    return this.name;
  }
}

Indi bolsa, ata-klasymyzyň goragly usulyny warisiň usuly içinde ulanýarys:

typescriptclass Student extends User {
  private name: string;
  
  constructor(name: string) {
    super();
    this.name = name;
  }
  
  public showName(): string {
    return this.cape(this.name); // ata-klasymyzyň usulyny ulanýarys
  }
}

Klasymyzyň obýektini dözedeliň:

typescriptlet student: Student = new Student('john');

Studenti çap etmek üçin usuldan peýdalanyň:

typescriptconsole.log(student.showName());

cape usulyny klasymyzyň daşyndan çagyrmaga synanyşmak ýalňyşlyga getirer:

typescriptconsole.log(student.cape('test')); // ýalňyşlyk
Задание 1

Aşakdaky klas berlen:

typescriptclass User {
  protected name: string;
  protected surn: string;
  
  constructor(name: string, surn: string) {
    this.name = name;
    this.surn = surn;
  }
}

Bu klasdan Employee klasyny miras alyň, salary goragly aýratynlygyny goşan we hem özüniň, hem-de miras alnan aýratynlyklarynyň ähli getterlerini goşan.