継承
継承とは
**「もともとあるクラスを利用して、新しいクラスを生み出すこと」**です。
オブジェクト指向の勉強でもやりましたが、「このクラスはほとんど同じだけど、ここだけちがいます」っていうクラスをつくるときに使います。
スーパークラスとサブクラス
オブジェクト指向的にポケモンで考えてみます。
ポケモンという、「身長、体重、名前、タイプなどのデータをもったもの」のクラスを継承して、ハガネール というクラスを生み出した場合だと
ということになります。
継承する方法
サブクラスを作成する時、以下のように「 extends スーパークラス名 」を記述して作ります。
そのあとで、以下のように「サブクラス にしか持っていない機能」を記述していきます。
class サブクラス名 extends スーパークラス名 {
親クラスと違う処理
...
...
と、指定します。
サブクラス は空っぽの状態でも、すでに親クラスのフィールドとメソッドを引き継いでいて、「スーパークラスとはどこがちがうか」を書き込んでいきます。
継承のメリット
主に以下の点が挙げられるかと思います。
- 同じような機能を持つ重複したコードを書かないようになるので、コードの再利用性が高くなる。
- メソッドを追加したり、オーバーライドすることができるので自由に拡張する。
逆に継承をしないデメリット
重複したコードを書くことで、このような問題がズルズルと増えていきます。
- 勘違いやミスやバグやを起こしてしまう可能性があり、メンテンスが難しくなる。
- 「機能の追加」や「改善」が難しくなり拡張性が下がる
効率よく少ないコードでプログラミングしないと、開発がどんどん難しくなり、コードを書くプログラマーにも大きな負担になります。