【JavaScript】オーバーライド - スーパークラスのメソッドをサブクラスで再定義する
JavaScriptのオーバーライドについて解説します。
検証環境
オーバーライド
オーバーライドは“サブクラスでスーパークラスのメソッドを再定義すること”です。
一般的にスーパークラスのメソッドと意味(処理目的等)は同じであるが、処理内容が異なる場合に使用します。
基本構文
オーバーライドするにはスーパークラスの対象メソッドと同じメソッド名のメソッドをサブクラスで定義します。
class サブクラス名 extends スーパークラス名 {
メソッド名( 仮引数1, 仮引数2 ... ) {
// 処理...
return 戻り値;
}
}
サンプル
class Person {
name;
greeting() {
console.log("Hello");
console.log("My name is " + this.name);
}
}
class Teacher extends Person {
subject;
___ih_hl_start
greeting() {
console.log("Hello");
console.log("I'm a " + this.name + ", a " + this.subject + " instructor");
}
___ih_hl_end
}
let t = new Teacher();
t.name = "TANAKA";
t.subject = "Programming";
t.greeting();
Hello
I'm a TANAKA, a Programming instructor
13〜16行目がオーバーライドです。
Person
クラス(スーパークラス)のgreeting
メソッドをTeacher
クラス(サブクラス)で再定義しています。
23行目のgreeting
メソッドの呼び出しでは、実行結果からオーバーライドした内容の処理が実行されたことが分かります。