extends

編集

extends は、JavaScript においてクラスを継承するためのキーワードです。extends を使用することで、あるクラス(親クラス)のプロパティやメソッドを別のクラス(子クラス)が引き継ぎ、新たな機能を追加できます。この継承機能は、コードの再利用性を高め、オブジェクト指向プログラミングの基礎を提供します。

構文

編集
class ChildClass extends ParentClass {
  // クラスの内容
}

説明

編集
  • 子クラス(ChildClass)は、extends を使用して親クラス(ParentClass)を継承します。
  • 子クラスは親クラスのすべてのプロパティとメソッドにアクセスできます。ただし、親クラスのプライベートフィールドにはアクセスできません。
  • 子クラスでメソッドをオーバーライドすることも可能です。
  • 親クラスのコンストラクタを呼び出すためには、子クラスのコンストラクタ内で super() を使用します。

使用例

編集
// 親クラス
class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} makes a noise.`);
  }
}

// 子クラス
class Dog extends Animal {
  speak() {
    console.log(`${this.name} barks.`);
  }
}

const dog = new Dog('Rex');
dog.speak(); // Rex barks.

この例では、Dog クラスが Animal クラスを継承しています。speak メソッドをオーバーライドして、Dog クラス特有の振る舞いを追加しています。

継承の詳細

編集
  • extends を使ってクラスを継承すると、子クラスは super を利用して親クラスのメソッドやコンストラクタを呼び出すことができます。
  • 継承の際にクラスではなく、プロトタイプオブジェクトを指定することも可能です。
// プロトタイプオブジェクトから継承
class CustomArray extends Array {
  customMethod() {
    console.log('This is a custom array method.');
  }
}

const arr = new CustomArray();
arr.push(1, 2, 3);
console.log(arr.length); // 3
arr.customMethod(); // This is a custom array method.

注意点

編集
  • クラスを継承する場合、子クラスでコンストラクタを定義する際は、super() を最初に呼び出す必要があります。これを怠るとエラーが発生します。
  • 親クラスが持つ静的メソッドも、extends によって継承されます。

関連項目

編集

参考

編集