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

SESSION 14 その55
クラスの詳細 つづき
  継承の問題点

とまあ、簡単だけど
クラスの継承の形態を
見た訳だけど。


どうかな?
クラスの仕組みって
思ったより簡単なんだね、

単一継承と多重継承でしょ。

それから、この継承を階層化
するのと、たった3つの形の
組み合わせしか・・・
あ!
えっ?

なんか
あった?

そうだよ!
 
複数階層の継承:継承は何階層でもできる


ちょ、ちょっと、待って、なぽちゃん!
子クラスは別のクラスの親になれるんだよね!?

ってことは!

多重継承したクラスが親クラスになって
それを継承した子クラスがさらに多重継承して
オーバライドしたらアクセス権が単一継承して
プライベートがオーバーロードして作った
インスタンスは派生クラスが基本クラスになったのが
ぬかみそ自動車でー・・・


継承をどんどん重ねて
組み合わせって無限大ー!!


どこかで同じ名前は使ってない?
何回も同じクラス継承してたらどうしよう?
壊れちゃうの?壊れちゃうでしょう?


複雑すぎてなにがなんだかかんだかー!!!
  ぷしゅー
ムリー
全然簡単じゃないー!

オーバーライド
オーバーロード・・・
・・・オーバー・・・
オーバー・・・

オーバーヒート?

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


良い所に気づきました。

そう、クラスの継承は、
継承の仕方によって複雑化する。

そして問題を引き起こす
可能性があるんだ。
きゅー

ゲラゲラゲラ

ぬかみそ継承
ですな。


例えば、多重継承の問題。

もし複数の親クラスが
同じクラスを継承していたら
子クラスはどの親クラスの
メソッドを継承する?


これは
ダイヤモンド継承(菱形継承)
と言われる問題だよ。
お答え
下さいマセ。
ダイヤモンド型
になるんだ・・・
うーん。

インスタンスを作ったら
どっちのメソッドを使う
のかな?
 
多重継承の問題点


教えて!
こうさんっ!

どっちを継承するの?
 
答えは
「このままじゃ継承できない」。

あいまいな部分を解決しないとね。

そして、あいまいな部分の
解決方法は開発言語によって
異なるんだ。

オブジェクト指向は考え方。
それをどう実装するかは
開発言語によって違うんだよ。
  言語ごとなのー

何度も
しつこいけどー
 


例えば、C++の場合は、
「仮想継承」と言う仕組みを
使って対応したりする。

そして、Javaの場合は
そもそも多重継承自体が
許可されない。

多重継承が
できないんだよ。
えー!!

多重継承
できないんだ!
ずどーん!
でっきませんー

うわーどうしよー

それで
大丈夫なの?


Javaの場合、
多重継承はメリットより
デメリットの方が多いと考えて
ばっさり切り捨てたんだな。

でも、大丈夫。

無くてもプログラムを作る上で
問題ないし、やろうと思えば
似たようこともできるんだよ。

ここら辺はまたその内。
よかった。

使えなくても
大丈夫なんだ。
でも、
大丈夫でした。

おしまい。

はあ~

Javaって
大胆だねえ~

 
 

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