[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

多重継承

pointこの用語のポイント

point親要素の特徴を受け継ぐよ

point親要素が複数あるよ

pointオブジェクト指向の話で、よく出てくるよ

スポンサーリンク

簡単に書くよ

多重継承とは

複数の親要素から継承する(親要素の特徴を受け継ぐ)こと
です。

image piyo

詳しく書くよ

順番に見ていきましょう。

オブジェクト指向は「『モノ』に注目した考え方」ね。
「どんな奴で、どう動く」に注目した考え方です。

多重継承

オブジェクト指向は、それをテーマにして本を一冊書けるくらい、ふんわりとして捉えどころのないやつです。
具体的なことが知りたい人は他のところで勉強してください。

オブジェクト指向の話でよく出てくる用語で「元となるやつから要素を受け継いで、元となるやつの特徴を備えた新しいやつを作る」ことを「継承」と言います。

例えば、ここにピヨ太ママがいたとしましょう。

多重継承2

ピヨ太ママの要素を受け継いだピヨ太君を新しく作りました。
ピヨ太君には、ピヨ太ママの特徴が、色濃く受け継がれています。

多重継承3

これが継承です。
元となるやつ(ピヨ太ママ)から要素を受け継いで、元となるやつの特徴を備えた新しいやつ(ピヨ太君)を作っています。

なお、このときのピヨ太ママとピヨ太君は親子関係にあると言います。

多重継承4

ピヨ太ママはピヨ太君の「」です。

多重継承5

ピヨ太君はピヨ太ママの「」になります。

多重継承6

以上を踏まえて「複数の親から要素を受け継いで、新しいやつを作る」継承が「多重継承」です。

先ほどの継承の説明では、ピヨ太ママの要素を受け継いだピヨ太君を作りました。
親はピヨ太ママ1人です。

多重継承7

多重継承では、親が複数人登場します。
例えば、ピヨ太ママとピヨ太パパの要素を受け継いだピヨ太君を作るのが多重継承です。
親はピヨ太ママとピヨ太パパの2人になります。

多重継承8

このように「複数の親から継承する」のが多重継承です。

なお、多重継承は、いろんな人から「できるだけ使わないで欲しいな~」と思われているテクニックのひとつです。

理由は、いろいろありますけどね。
一言で言えば

複雑になるから

です。

複雑になる例もいろいろありますが、ひとつだけ挙げておきましょう。

先ほどの例では、ピヨ太ママとピヨ太パパの要素を受け継いだピヨ太君を作りました。
親はピヨ太ママとピヨ太パパの2人です。

多重継承9

それでは、ピヨ太ママとピヨ太パパが、両方ともピヨ太ジージの要素を受け継いでいたら、どうでしょう。
ピヨ太ママにはピヨ太ジージの要素が受け継がれています。
ピヨ太パパにもピヨ太ジージの要素が受け継がれています。

多重継承10

普通に考えれば、ピヨ太君にもピヨ太ジージの要素は受け継がれるはずです。

多重継承11

さて、ここで考えてみてください。

ピヨ太君に受け継がれるピヨ太ジージの要素は、ピヨ太ママの中にあったピヨ太ジージの要素でしょうか?
それとも、ピヨ太パパの中にあったピヨ太ジージの要素でしょうか?

多重継承12

ピヨ太君は、ピヨ太ジージと直接の関係はありません。
受け継いでいるのは、あくまで(ピヨ太ジージの要素を受け継いだ)ピヨ太ママとピヨ太パパの要素です。

ピヨ太君に受け継がれるピヨ太ジージの要素は、ピヨ太ママかピヨ太パパ譲りのはずですが……どっちでしょうか?

「う~ん、どっちだろ?」と悩みませんか?
他に判断材料がなければ「ピヨ太ママ譲りのピヨ太ジージの要素だよ!」のように補足してもらう必要があります。

これが多重継承のややこしさの一例です。
多重継承には考慮しなくてはいけない点が、いろいろあるのです。

そんなこんなで、多重継承は面倒くさい子扱いされることが少なくありません。
プログラミング言語によっては「考慮するのが面倒くさいから、多重継承はなしね!」と最初から排除しているものもあります。

例えば、かの有名なJavaでは、多重継承は使えません。
Javaを作った人は、きっと「ややこしいんだよ、ばーか!」と考えたのでしょう。

image piyo2

一言でまとめるよ

まぁ「多重継承」って単語が出てきたら「元ネタが複数あって、それらの要素を受け継いでいるんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク