Модификаторот 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,
како и геттери за сите својства, и своите,
и наследените.