Javascriptの関数のオーバーライド
最終更新日02 Jan 2016 12:12
- C++ のようにオーバーライドする関数に virtual などの特殊な修飾子を付ける必要はありません。
- Java のようにメソッドに final をつけてオーバーライドを禁止することもできません。
- 多重継承はできません。
- インタフェースの仕組みはありません。子クラスに強制的にメソッドを実装させたいときは代わりに throw new Error('Not Implemented');します
子クラスで同名のメソッドを定義されてしまえば問答無用でオーバーライドされてしまいます。
これは大規模なプログラムでは問題になってしまいますが、純粋な JavaScript では解決する手段がありません。
親クラスのメソッドを明示的に呼び出すには
親クラスのコンストラクタの呼び出しの場合と同様に call を使用します。