{category}

JavaScript - 継承とポリモーフィズム

継承

けいしょう(オブジェクト指向

意味 既存のクラスの特性を引き継ぐ


継承とは?

あるクラスが別のクラスの特性(プロパティやメソッドなど)を引き継ぐことを指します。継承を利用することで、共通の機能を持つ複数のクラスをより効率的に管理できます。例えば、'Animal'クラスには動物共通の機能を定義し、'Dog'クラスでは'Animal'の機能に加えて犬特有の機能を追加することができます。

継承の具体的な使い方

クラスの継承を実装する例

<button onclick="const dog = new Dog('ポチ'); dog.eat(); dog.bark();">継承の例を表示</button>
<script>
class Animal {
    constructor(name) {
        this.name = name;
    }
    eat() {
        alert(`${this.name}が食事をしています...`);
    }
}

class Dog extends Animal {
    bark() {
        alert(`${this.name}が吠えています:ワンワン!`);
    }
}
</script>

'Dog'クラスが'Animal'クラスを継承しています。'Dog'クラスは'Animal'クラスのプロパティとメソッドを引き継ぎ、さらに新しいメソッド'bark'を追加しています。

継承とメソッドのオーバーライド

class Vehicle {
    move() {
        console.log('車両が移動しています');
    }
}

class Car extends Vehicle {
    move() {
        console.log('車が道路を走っています');
    }
}

const myCar = new Car();
myCar.move();

👇出力結果

車が道路を走っています

このコードでは、'Car'クラスが'Vehicle'クラスを継承し、'move'メソッドをオーバーライド(上書き)しています。

継承に関するよくある質問

Q. 継承の利点は?
A. 継承の主な利点は、コードの再利用性を高め、階層的な構造を作れることです。共通の機能を親クラスに定義し、子クラスで特殊化することで、効率的にコードを管理できます。
Q. 多重継承はできる?
A. JavaScriptでは直接的な多重継承はサポートされていません。ただし、ミックスインパターンを使用することで、複数のオブジェクトの機能を1つのクラスに組み込むことができます。
Q. 継承の深さに制限はある?
A. 技術的には継承の深さに制限はありませんが、深すぎる継承は複雑性を増し、コードの理解と保守を難しくする可能性があります。一般的には、3〜4レベルを超えないことが推奨されます。

継承が学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、JavaScriptの継承やオブジェクト、Instance、new、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


JavaScriptを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!JavaScriptはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

オブジェクト

データと機能をまとめたもの

種類: 基本的なオブジェクトの概念

Instance

クラスから生成されるオブジェクト

種類: クラスとインスタンス

new

インスタンスを作成

種類: クラスとインスタンス

Push API

サーバーからの通知を受信

種類: その他のWeb機能

array.splice()

配列を変更

種類: Array