Modifikuesi protected në TypeScript
Vetitë dhe metodat private nuk trashëgohen
nga pasardhësit. Megjithatë, ndonjëherë ne kemi nevojë që
një veti ose metodë të mos jetë e arritshme nga jashtë,
por të jetë e trashëguar nga pasardhësit. Në këtë
rast duhet të përdoret modifikuesi
protected.
Le ta provojmë në praktikë. Le të deklarojmë në
klasën tonë User metodën cape
si të mbrojtur duke përdorur modifikuesin protected:
class User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
Le të krijojmë klasën Student, që trashëgon
nga klasa User:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
Le të shtojmë një metodë që shfaq emrin:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.name;
}
}
Dhe tani le të përdorim metodën e mbrojtur të prindit brenda metodës së pasardhësit:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.cape(this.name); // përdorim metodën e prindit
}
}
Le të krijojmë një objekt të klasës sonë:
let student: Student = new Student('john');
Le të përdorim metodën për të shfaqur studentin:
console.log(student.showName());
Por një përpjekje për të thirrur metodën cape
nga jashtë klasës do të rezultojë në gabim:
console.log(student.cape('test')); // gabim
Jepet klasa e mëposhtme:
class User {
protected name: string;
protected surn: string;
constructor(name: string, surn: string) {
this.name = name;
this.surn = surn;
}
}
Trashëgoni nga kjo klasë klasën Employee,
e cila do të shtojë vetinë e mbrojtur salary,
si dhe getters për të gjitha vetitë, si të vetat,
ashtu edhe ato të trashëguara.