DVDクラスがProductクラスを継承するとき、Productクラスのことを継承する時に
ProductクラスのことをDVDクラスのスーパークラス(または親クラス)
と呼ぶ。
DVDクラスのことをProductクラスのサブクラス(または子クラス)
と呼ぶ。
クラス図
クラスの継承関係を図解するときは、クラス図と呼ばれる図を使う。
クラス図を紹介
このクラス図のように
サブクラスからスーパークラスへ向かって矢印を伸ばしている。
継承の注意点
スーパークラスの機能を全部引き継ぐための仕組みと見なされる場合がある。
それは誤解だ。
継承は機能ではなく、性質や概念の共通点に注目
する。
性質や概念が共通しているかを知るための方法
サブクラスはスーパークラスの一種
である。(サブクラス is a スーパークラス
)と声に出して読んだ時に違和感がないかを確かめることです。
これはis-aの関係
親クラスと子クラスの性質の違い
サブクラスの性質
スーパークラスの性質を特化
させたもの。
スーパークラスの性質
サブクラスの性質を汎化
させたもの。
汎化とは性質がより大雑把に抽象化
されることを指す。
継承関係
Rubyの継承関係は単一継承です。
継承できるスーパークラスは一つだけになります。
(ただしRubyはミックスインという多重継承に似た機能を持っています。)
デフォルトで継承されるObjectクラス
独自の作成したクラスはデフォルトでObjectクラスを継承します。
なので継承した独自に作成したクラスのオブジェクトはto_sメソッド
やnil?メソッド
を使うことができます。
superでスーパークラスのメソッドを呼び出す
継承関係にあり同じメソッド名の場合処理にsuper((引数があれば引数を入れる))
を書き込むと親クラスのメソッドと同じ処理します。
また新たに子クラスのメソッドだけに処理を書き足すこともできる。
これをオーバライド
という。
出典