neverjpのぶらり日記

コンピューター関連の記事とぶらりと出かけた先の写真など

クラスとインヘリタンス

f:id:neverjp:20190521163910j:plain

スーパークラスとサブクラスそしてインヘリタンス(鳥を例として)


クラスとインヘリタンス

Codeの説明


スーパークラスBirdを作る(パラメーターはobject-スーパークラス

② __init__関数(第一パラメーターはself,第2第3パラメーターはname,wingspan)

③ 初期設定の左辺はself.name、self.wingspan、右辺は対応する変数(第1・2param)

④ birdcall関数(メソッド)のparamはself、出力はchirpを表示

⑤ fly関数(メソッド)のparamはself、出力はflapを表示

⑥ サブ・クラスPenguinのパラメーターはBird(サブクラス)

⑦ 関数(メソッド)swim(self)、関数(メソッド)birdcall(self)、関数(メソッド)fly(self)では飛べないとオーバーライド

⑧ サブ・クラスParrotのパラメーターはBird(サブクラス)

⑨ __init__関数(第一パラメーターはself,第2第3第4パラメーターはname,wingspan,color)パラメーターが一つ増えたことで初期設定の__init__でBirdのcolor以外を継承する(インヘリタンス)

 

トリのクラスを定義してインヘリテンスを知ろう。
またトリというクラス(オブジェクト)を設け、鳴き声と飛行というメソッドをつくります。
このトリにはペンギンとパロットというサブクラス(オリジナルのオブジェクトとは少し違うメソッドや属性をもっている=インスタンスがオリジナル[スーパークラス]とは少し異なる)をつくります。この少し違ったものを作るのにインヘリテンスという概念が重要になります。
ペンギンはトリのクラスに属しますが、違う鳴き声をし、泳ぐという新しいメソッドをもち、飛行メソッドは「飛べない」と出力します(オーバーライドにより書き換えています)。
パロットは色という属性を持つが、メソッドはオリジナルのバードと同じ(これを継承[インヘリテンス]とよぶ)のように定義します。

Parrot:オウム、chirp:小鳥のさえずり(ちゅんちゅん)
flap:小鳥がパタパタ、quack:ガアガア

人気ブログランキングへ←人気ブログランキングに参加しています。よろしければ1票を!