プログラミングを学び始めると、「同じようなコードを何度も書いているな」と感じることがありますよね。そんな時に強力な武器となるのが、クラスの継承を可能にするextendsというキーワードです。今回は、この機能を「テンプレートの再利用」という視点で解説します。
extendsの役割とは
一言でいえば、extendsは「既存のクラスの能力を受け継ぎつつ、新しい機能を追加する」ための仕組みです。親となるクラス(親クラス)に共通の処理をまとめ、そこから派生した子クラスを作れば、コードの重複を劇的に減らすことができます。
具体的な事例で見てみよう
例えば、Webサイトで「通知機能」を作るとしましょう。まずは基本となる通知クラスを作ります。
クラス Notification {
constructor(message) {
this.message = message;
}
show() {
console.log(“通知: ” + this.message);
}
}
ここで、新しく「エラー専用の通知」を作りたいとします。通常なら全て書き直しますが、extendsを使えばこう書けます。
クラス ErrorNotification extends Notification {
show() {
console.log(“【エラー発生】: ” + this.message);
}
}
なぜこの書き方が便利なのか
このコードのポイントは、Notificationにあるプロパティを再定義せずに利用できている点です。もし通知のデザインを一括で変更したい場合、親クラスを修正するだけで全ての子クラスに反映されます。修正漏れを防ぎ、保守性を高めることができるのです。
初心者が意識すべき注意点
便利なextendsですが、注意点もあります。それは「継承の階層を深くしすぎないこと」です。親を継承して、その子を継承して…と深くしすぎると、どのクラスが何の機能を持っているのか追いかけるのが難しくなります。
最初は「共通の機能を持つグループ」を一つ作り、そこにextendsで個別の詳細を付け足す、というシンプルな使い方から始めてみてください。コードが整理される快感を、ぜひ体験してみてくださいね。