TypeScriptにおけるオーバーライド(上書き)について学んだのでアウトプットしたいと思います。
オーバーライド(上書き)とは
オーバーライドとは継承されたクラス(親クラス)のメソッドやプロパティを継承したクラス(子クラス)で上書きすることを言います。
オーバーライドの実装例
オーバーライドの実装は次のようになり、継承したクラス(子クラス)であるSuperHeroクラスのattackメソッドが呼ばれていることがわかります。このことから継承したクラス(子クラス)であるSuperHeroクラスのattackメソッドが継承されたクラス(親クラス)であるHeroクラスのattackメソッドを上書きしていることがわかります。
class Hero { //継承されたクラス(親クラス)
constructor(public heroName: string,public hp:number) {
}
attack() {
console.log(this.heroName + 'は攻撃した');
}
}
class SuperHero extends Hero { //継承したクラス(子クラス)
attack() {
if(this.heroName === 'ひいろ'){
console.log('スーパーヒーローの' + this.heroName + 'は攻撃した');
}
}
}
const a = new SuperHero('ひいろ', 100);
a.attack(); //スーパーヒーローのひいろは攻撃した
初めはオーバーライドと言われてもあまりピンときませんでしたが、学んでいくうちに「あーそうゆうことね」と理解することができました。他の機能と連携をとりながら実装に役立てていきたいと思います。