protected մոդիֆիկատորը TypeScript-ում
Մասնավոր հատկություններն ու մեթոդները
չեն ժառանգվում սերունդների կողմից: Սակայն
երբեմն մեզ անհրաժեշտ է, որ հատկությունը կամ
մեթոդը հասանելի չլինեն դրսից, բայց
ժառանգվեն սերունդների կողմից: Այս
դեպքում պետք է օգտագործել
protected մոդիֆիկատորը:
Եկեք փորձարկենք գործնականում: Մեր User
դասում cape մեթոդը հայտարարենք
որպես պաշտպանված՝ օգտագործելով protected
մոդիֆիկատորը:
class User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
Ստեղծենք Student դասը, որը
ժառանգում է User դասից:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
Ավելացնենք անունը ցուցադրող մեթոդ.
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.name;
}
}
Այժմ օգտագործենք ծնողի պաշտպանված մեթոդը սերնդի մեթոդի ներսում.
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.cape(this.name); // օգտագործում ենք ծնողի մեթոդը
}
}
Ստեղծենք մեր դասի օբյեկտը.
let student: Student = new Student('john');
Օգտագործենք մեթոդը ուսանողին ցուցադրելու համար.
console.log(student.showName());
Սակայն դասից դուրս cape մեթոդը
կանչելու փորձը կհանգեցնի սխալի.
console.log(student.cape('test')); // սխալ
Տրված է հետևյալ դասը.
class User {
protected name: string;
protected surn: string;
constructor(name: string, surn: string) {
this.name = name;
this.surn = surn;
}
}
Ժառանգեք այս դասից Employee դասը,
որը կավելացնի պաշտպանված salary
հատկությունը, ինչպես նաև բոլոր հատկությունների
գետերներն էլ՝ ինչպես սեփականը, այնպես էլ
ժառանգվածը։