/var/log/masayoshi/masayoshi.life.log

とりあえず、書きたいこと書くだけ。

鉄道車両製造とオブジェクト指向

なんとなーくオブジェクト指向言語がとっつきにくいというツイートを見かけたのでざっくり解説。

  • 車両の基本構造(基本クラス)

まず、車両をAというメーカーで製造します。
Aが製造できる車両は次の通り

「通勤形」

だけ、基本的な仕様は次の通り

    • ロングシート
    • 線路幅は狭軌(JRの新幹線と一部路線を除く)
    • 4ドア車

ただし、通勤形とひと括りにしても

「発注元はどこか?」
「線路幅は狭軌標準軌か」

などなどの条件が絡んできます、その条件を考えた上で1つの車両が製造されます。
プログラムでも基本的な関数だけを定義した物を基本クラスと言います、

  • 発注元に特化した車両(基本クラスを継承する)

そこのJという会社から車両の発注が来ました、仕様はこうです。

この3つの特徴を持たせた車両を製造することになりました、今までにこの会社では

    • 路線は馬車軌(日本では京王電鉄が該当)
    • 座席はロングシート
    • ドア数は2ドア

という条件の車両を製造しました。
2つの製造した車両を比較すると

    • 線路幅は2社で違う
    • 座席のタイプも違う
    • ドア数も違う

となります、ここで製造できる車両の基本仕様を生かしつつ一部仕様を変更しています。
これが「クラスの継承」となります。

駆け足の説明でしたがどうでしょうか、わかりにくいなど有りましたらコメントで突っ込んでください。