jsで派生するときconstractorはどうすればいい?

JavaScriptでクラスを継承(派生)する際のconstructor(コンストラクタ)の使い方について説明します。

クラスを継承する場合、extendsキーワードを使います。派生クラス(サブクラス)のコンストラクタ内で親クラス(スーパークラス)のコンストラクタを呼び出すには、superキーワードを使用します。

以下に、基本的な例を示します。

class Parent {
    constructor(name) {
        this.name = name;
    }

    greet() {
        console.log(`Hello, my name is ${this.name}`);
    }
}

class Child extends Parent {
    constructor(name, age) {
        // 親クラスのコンストラクタを呼び出す
        super(name);
        this.age = age;
    }

    greet() {
        // 親クラスのメソッドを呼び出す
        super.greet();
        console.log(`I am ${this.age} years old`);
    }
}

const childInstance = new Child('John', 12);
childInstance.greet();
// 出力:
// Hello, my name is John
// I am 12 years old

この例では、Parentクラスがnameプロパティを持ち、greetメソッドを定義しています。ChildクラスはParentクラスを継承し、nameに加えてageプロパティを持ちます。Childクラスのコンストラクタでは、super(name)を使って親クラスのコンストラクタを呼び出し、nameプロパティを初期化しています。また、greetメソッドをオーバーライドして、親クラスのgreetメソッドを呼び出し、その後にageプロパティを表示するようにしています。

重要なポイントは以下の通りです:

superの呼び出し:派生クラスのコンストラクタ内でthisを使う前にsuperを呼び出す必要があります。
メソッドのオーバーライド:親クラスのメソッドを派生クラスでオーバーライドする場合、必要に応じてsuperキーワードを使って親クラスのメソッドを呼び出すことができます。
これにより、派生クラスが親クラスの機能を継承しつつ、新しい機能やプロパティを追加できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です