広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English

継承(インヘリタンス)
継承(インヘリタンス)

クラスの継承(インヘリタンス)とは:クラスの内容を別のクラスに引きつぐ機能
 
継承(インヘリタンス)

クラスの内容を別のクラスに引き継ぐ機能。
すでに作ってあるクラスを元にして、
新しいクラスを作ることが出来る。

最初から作らないでいいので過去の資産を
活用できる。

インヘリタンスとも言う。英語で「相続」の意味。
 



継承の呼び方

元になるクラスを親クラス
継承するクラスを子クラスと言う。


他にもいろいろな呼び方がある。
どれもよく使うから覚えておくこと。
 
 
 
クラスの継承:クラスのいろいろな呼び方
 
元になるクラス 継承するクラス
親クラス 子クラス
基本クラス 派生クラス
スーパークラス サブクラス
その他にも、
ベースクラス、
基底クラス、など
その他にも、
継承クラス、など
 
表の行が対の呼び方になっています


設計図(クラスの)の再利用:既にある設計図(クラス)の再利用をしたい


継承(インヘリタンス)を使う:継承を利用することで既にあるクラスの再利用できる


プログラミングではこの作り方を、
「差分」だけを追加して作るところから、
差分プログラミングと言う。

  継承の構成

クラスの継承(インヘリタンス)の構成
 
継承の基本構成

新しいクラス(子クラス)に
継承したいクラスの名前と、追加する内容を書く。

これで、新しいクラス(子クラス)は
親と子の両方の設計内容を持ったクラスになる。

2枚で一つの設計図というイメージ。

  継承の使い方


継承の使い方
 
1、オブジェクトの内容を考える
2、クラスを設計する
3、インスタンスを生成する
4、インスタンスを設定して使う
 

  1、オブジェクトの内容を考える

1、オブジェクトの内容を考える

例:継承を使ってトラックを作る。
トラックはどんな物か考えてみる。
 
クラスの使い方(継承):1、オブジェクトの内容を考える。ベースになる基本クラス(親クラス)と追加分になる派生クラス(子クラス)の構成を検討する


追加が必要な機能(フィールドやメソッド)を考える

トラックは、「一般的な自動車」にどんな機能が付いたものか?

・コンテナメソッド

荷物を積んだり降ろしたりする。

・積載量フィールド
コンテナに荷物をどれだけ積んだか記録する
 
 
継承(インヘリタンス)を使う:継承を利用することで既にあるクラスの再利用できる

  2、クラスを設計する

2、クラスを設計する

考えた内容でクラスの設計をする。
今回は新しく「トラッククラス」を作った。
 
 
クラスの使い方(継承):2、クラスを設計する。既にあるクラスを利用して、新しいクラスを作る(親クラスと子クラス)

  3、インスタンスを生成する

3、インスタンスを生成する

作ったクラスでインスタンスを作る。
この際は子クラスをインスタンス化するだけでいい。

これで、親クラスの機能も持ったトラックが出来た。
 
クラスの使い方(継承):3、インスタンスを生成する。子クラスをインスタンス化することで、親クラスの設計を引きついだインスタンスができる

  4、インスタンスを設定して使う

4、インスタンスを設定して使う

使う人は、親クラスの機能とか
子クラスの機能とか意識しないで使える。
 
 
クラスの使い方(継承):4、インスタンスを設定して使う。インスタンスは親クラスと子クラスの設計内容を持つ

  クラスの複数階層の継承

クラスの継承は何段階でもできる。

見てきた例のようにして継承を繰り返せば、
たくさんの設計図の内容を継承できる。
 
複数階層の継承:継承は何段階でもできる。


そして、同じクラスを親にして
複数の派生したクラスを作ることもできる。
 
 
クラスの派生:同じ親クラスから複数の子クラスを作ることができる

画像クリックで別ウィンドウに拡大表示します。


親クラスを書き換える時は注意。

親クラスを変更すると子クラスが親クラスから
引き継いでいる部分も同時に変わる。


継承してる全ての子クラスに影響が出るので
注意して変更すること。

みんなで1枚の親設計図を見にいってるイメージ。

  多態性(ポリモーフィズム)

別項目になっています。こちらからご覧下さい。

  様々な継承の形態


様々な継承の形態
 
多重継承
単一継承
 

  単一継承

別項目になっています。こちらからご覧下さい。

  多重継承

別項目になっています。こちらからご覧下さい。

  継承の問題点

継承の問題点:単一継承や多重継承、オーバーライドやオーバーロードなど様々な要素が絡んで複雑化する
 
継承の問題点

継承の仕方によって複雑化する。そして、問題を引き起こす可能性がある。

継承を使いこなすのは難しいが最初から複雑に考える必要は無い。
複雑なことをしないでもプログラムは十分作れる。
まずは単純なことから始めて小さなことを積み重ねて行くこと。

今回はクラスの継承がどんなものか全体像を理解すること。

  継承(インヘリタンス)のまとめ

 
継承(インヘリタンス)のまとめ
子クラスは親クラスを継承することで、親クラスの設計を引き継ぐことができる。(差分プログラミング)
オーバーロード(再定義)とオーバーライド(多重定義)で、
多態性(ポリモーフィズム)を実現している
クラスの継承の仕方には、単純継承と多重継承がある
 
 

オブジェクト指向の利点
 
利点 内容
柔軟性 物の組み合わせを変えることで、様々なシステムの設計に対応できる。
再利用性 一度作った物を別のシステムに再利用できる。
応用性 様々なものに当てはめて設計できる。
物体だけじゃなく事象や計画などに適用して考えることも出来る。
独立性 クラスごとに部品化して設計し、機能・役割を分担できる。
分離性 部品化し、内部処理をブラックボックス化することで、他に影響を与えずに交換や追加・変更しやすい構造にできる。
安全性 外部からのアクセスを制限にすることで、安全な構造に設計できる。
効率性 クラスごとに担当者を分け、作業を分担することで平行作業することができる。
・・・ ・・・
 

 
このページはセッションで使用したプログラミング用語やIT用語の要約です。復習に利用して下さい。

漫画形式の本編はこちら 
<ゲームを作ろう!>超初心者のためのプログラミング入門
 

広告
home もくじ
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -