{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を勉強するのにおすすめな問題集アプリの紹介

楽しくプログラミングを学ぶことで、プログラミングの理解度が深まります。『JavaScript問題集』は、楽しくJavaScriptを学ぶのに最適なアプリです。AIが出題する問題に答えていくことで、自然とJavaScriptの理解度が深まります。

AppStoreからダウンロード:https://apps.apple.com/jp/app/id6737941570

JavaScript問題集

JavaScriptの継承についても学べる書籍の紹介

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

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

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」カテゴリーが追加されましました!


関連するそのほかの単語

Protected

サブクラス内でアクセス可能

種類: カプセル化

カプセル化

データを隠蔽し、安全に管理

種類: カプセル化

ミックスイン

特性の組み合わせ

種類: その他のオブジェクト指向機能

event.preventDefault()

通常の動作キャンセル

種類: イベントオブジェクトとプロパティ

アロー関数

短縮形の関数

種類: 関数の種類