クラスの継承・オーバーライドとは?(Ruby)

こんにちは、にゅ〜ぶるです。

前回は、オブジェクト指向について書いたので、その続きを書いておこうと思います。

今回は、「クラスの継承」「オーバーライド」について。

継承とは?

「継承」とは、クラスの共通部分をまとめたクラスを作り、それを継承することをいいます。継承される側のクラスを「スーパークラス(親クラス)」、継承して新しく作ったクラスを「サブクラス(子クラス)」と言います。

では、実際に前回の例を用いて、説明していきましょう。

共通部分をまとめる?

前回の例で使いました、人間クラスを思い出してみてください。

この人間クラスを継承して、にゅ〜ぶるクラスを作りましょう。

Rubyでは、継承する際は、「子クラス < 親クラス」と書きます。

継承する事で、親クラスのプロパティ・メソッドが、子クラスでもそのまま利用する事が出来ます

実行結果

さて、継承するメリットはなんでしょう?
今回は、にゅ〜ぶるクラスを作りましたが、Aさんクラス、Bさんクラスと、量産した際、プロパティ・メソッドを毎回書く必要がなくなりますね!
ここに、各クラス独自のプロパティ・メソッドを追加して、拡張するだけで良いんです。

でも、自己紹介って、人それぞれですよね。そんな時、どうしたら良いでしょう?
その時に使うのが、「オーバーライド」です。そう、名前の通り、上書きをします。

Rubyでは、これも簡単にかけます。

そう、こんな感じに、単純に書き直すだけ。
Rubyでは、メソッドが呼ばれた時、自クラスから親クラスの順に検索され、存在すればそのメソッドが実行されます。

実行結果

クラスを継承して、カスタマイズしたい部分だけをオーバーライドする。
こうして、色々なクラスを作っていってくださいね!