Der Modifizierer protected in TypeScript
Private Eigenschaften und Methoden werden nicht
von Nachkommen geerbt. Manchmal möchten wir jedoch,
dass eine Eigenschaft oder Methode nicht von außen zugänglich ist,
aber von Nachkommen geerbt wird. In diesem
Fall sollte der Modifizierer
protected verwendet werden.
Lassen Sie uns das in der Praxis ausprobieren. Deklarieren wir in
unserer Klasse User die Methode cape
als geschützt mit Hilfe des Modifizierers protected:
class User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
Erstellen wir eine Klasse Student, die
von der Klasse User erbt:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
Fügen wir eine Methode hinzu, die den Namen ausgibt:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.name;
}
}
Und jetzt verwenden wir die geschützte Methode des Elternteils innerhalb der Methode des Nachkommen:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.cape(this.name); // verwenden die Methode des Elternteils
}
}
Erstellen wir ein Objekt unserer Klasse:
let student: Student = new Student('john');
Verwenden wir die Methode, um den Studenten auszugeben:
console.log(student.showName());
Der Versuch, die Methode cape
von außerhalb der Klasse aufzurufen, führt jedoch zu einem Fehler:
console.log(student.cape('test')); // Fehler
Gegeben ist die folgende Klasse:
class User {
protected name: string;
protected surn: string;
constructor(name: string, surn: string) {
this.name = name;
this.surn = surn;
}
}
Leiten Sie von dieser Klasse eine Klasse Employee ab,
die eine geschützte Eigenschaft salary hinzufügt,
sowie Getter für alle Eigenschaften, sowohl eigene,
als auch geerbte.