1
在打字稿這是合法的代碼:爲什麼要將基類中的受保護訪問更改爲派生類中的公共訪問權限?
class Animal {
name: string;
constructor(theName: string) {
this.name = theName;
}
protected move(distanceInMeters: number = 0) {
console.log(`${this.name} moved ${distanceInMeters}m.`);
}
}
class Snake extends Animal {
constructor(name: string) {
super(name);
}
move(distanceInMeters = 5) {
console.log("Slithering...");
super.move(distanceInMeters);
}
}
class Horse extends Animal {
constructor(name: string) {
super(name);
}
move(distanceInMeters = 45) {
console.log("Galloping...");
super.move(distanceInMeters);
}
}
然而,這將是在C#中是非法的,例如。然而,在公共文件中保護是不允許的。
允許將受保護的函數作爲派生類中的公共函數公開的原因是什麼?從C#和Java開始,我根本無法改變成員的訪問級別。
明確的答案,謝謝。 – Sam