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