2024-10-04
🔷TypeScriptの学習_8 (クラス3)
オーバーライド
オーバーライドとは、クラスの継承で親クラスのメソッドの処理内容を子クラスで上書きすることをいう
子クラスに親クラスと同じ名前のメソッドを定義することで上書きされる
また、overrideをメソッド名の前につけることで、そのメソッドが親クラスからオーバーライドされているということを明示することができる
override メソッド名() {}
オーバーライドの際に、親メソッドを呼び出すにはsuperを使用する
super.親メソッド名();とすることで、子メソッドから上書きした親メソッドが呼び出せる
コンストラクタもオーバーライドが可能
ただし、コンストラクタのオーバーロードの時は必ずsuper()で親コンストラクタを呼び出す必要がある
親クラスのコンストラクタで設定された引数は、子クラスのコンストラクタにもすべて含める必要があり、親クラスのコンストラクタの引数すべてをsuper()に渡す必要がある
code:コンストラクタのオーバーライド
class Parent {
// 親クラスではname、birthdayという引数を設定
constructor(name: string, birthday: string) {}
}
class Child {
// 子クラスでも親クラスの引数はすべて含めてsuper()に渡さなければいけない
/* 以下はエラーになる(birthdayが足りていない)
constructor(name: string, age: number) {
super(name);
}
*/
// 以下はすべての引数が含まれているので◯
constructor(name: string, birthday: string, age: number) {
super(name, birthday);
}
}