【JavaScript】オーバーライド - スーパークラスのメソッドをサブクラスで再定義する

【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メソッドの呼び出しでは、実行結果からオーバーライドした内容の処理が実行されたことが分かります。