継承 wikipedia|無料辞書
前のページ 1/1 次のページ
# 地位や財産などを受け継ぐこと。承継。
# オブジェクト指向を構成する概念。本稿で解説する。
----
継承(けいしょう、inheritance:インヘリタンス)とは、
オブジェクト指向を構成する概念の一つである。あるオブジェクトが他のオブジェクトの特性を引き継ぐ場合、両者の間に「継承関係」があると言われる。
一般的に、BがAを継承する場合、B is a A. (BはAの一種である)という意味的な関係(
Is-a関係)が成り立つ。従って、同じふるまいを持つからと言って、意味的に無関係なクラス間に継承関係を持たせるのは適切でない場合が多い。
継承と類似の概念に「
委譲」があるが、継承では一度定まった継承関係は通常変更されないのに対して、委譲対象は必要に応じて変更されうるものである。
◆ 多重継承と仮想継承
複数のクラスから継承することを
多重継承という。多重継承のバリエーションとして
仮想継承がある。同一のクラスから継承している複数の派生クラスを多重継承して1つのクラスを作る場合に始めの基底クラスの存在をどうするかによって仮想継承と通常の多重継承の2つに分かれる。
class Base
;
//仮想継承
class D1 : public virtual Base ;
class D2 : public virtual Base ;
class Derivation : public D1, public D2 ;
この例のような状態は特に
菱形継承(ダイアモンド継承)と呼ばれる。
仮想継承でない(D1, D2の部分のvirtualを取り除く)場合、Derivationの
インスタンスにはD1の基底のBaseのnとD2の基底のBaseのnという2つのnが別に存在することになる(メンバ関数も同様)。仮想継承した場合、DerivationのインスタンスにはBaseの部分はただ1つしか存在しない。D1の基底とD2の基底が共有されている状態である。
C++ではクラスの多重継承(
実装多重継承)・仮想継承が共に使用できる。しかしC++を基にしている
Java、
C#、
Dではいずれも使用できない。代わりに単独継承と0個以上の
インタフェース実装を用意している。なぜなら多重継承は問題点が多いと思われたためである。
# 継承関係が複雑になるため全体の把握が困難になる。
# 名前の衝突。同じ名前を複数の基底クラスがそれぞれ別の意味で用いていた場合、その両方を派生クラスで
オーバーライドするのが困難。
# 処理系の実装が複雑になってしまう。
# 仮想継承にしていない場合に同一の基底クラスが複数存在してしまう(これが望ましい場面もあるが)。
#* これの何が問題かというと、最初は仮想継承していなかったものを、後から仮想継承にしたくなったときに、変更点を洗い出すのが大変になるからである。つまり仮想継承を使用するには設計をきちんと行う必要があるということである。
しかしながら多重継承を使う方が直感的になる場合もあるとの主張もあり、どちらが正しいとは言えない状況である。
◆ 限定多重継承
完全な
実装多重継承が問題を起こしやすいのは、継承という仕組みの関係上複数の親クラスが対等に扱われる事が原因である。そこで完全な継承を行なう代わりに能力を限定した実装の引き継ぎを行なう手法もある。これらはモジュール、トレイトなどと呼ばれ、通常の継承とは区別される。継承との違いは次のようなものである。
# インスタンス変数を持たない。つまり特定の構造に依存しない純粋なメソッド定義を行なう。
# メソッドの集合演算が定義できる
# 必要に応じてクラスに付加される。クラスの通常継承時にそれらを引き継ぐ必要はない。
# 通常の継承とは独立の継承構造を持つため構造の把握が行ないやすい。意味のつながりを持たないクラス間で横断的に定義されるメソッドで特に有効である。
これらの特徴から多重継承の問題のうち1,2,4はほぼ解決できる。一般には多重継承を行なう場合も、このような使い方をする事が望ましいと考えられている。
◆ UMLにおける継承
UMLの
クラス図においては、BがAを継承する場合、AとBの間には
汎化の関係があるという。同時に、AはBを
汎化したクラスであるといえる。逆に、BはAを
特化したクラスであるともいえる。
◆ 関連項目
前のページ 1/1 次のページ
・継承 page1
■継承を他のサイトで調べる
@[継承]暇つぶしマスター
A[継承]性病マスター
B[継承]ダイエットNAVI
C[継承]価格比較マスター
D[継承]肛門科マスター
E[継承]産婦人科科マスター
F[継承]結婚情報マスター
■派遣社員関連検索
■派遣社員Wikipedia情報
おすすめサイト
■ダイエット
美容・ダイエットならオマカセ!ダイエットNAVI
■性病
性病?お悩み・病院検索は性病マスター
■暇つぶし
いま、ヒマ?暇つぶしマスターで暇つぶし★
■価格比較
気になる商品の価格を比較!価格比較マスター
■懸賞
カンタン応募で豪華商品が当たる!アタックchance!
■バイト
駅チカバイトなら楽ラクバイト.com
■求人
地域を選んでバイト、仕事を探せる!!バリバリ仕事!.com
■アルバイト
バイトをこだわり条件で探す!こだわりキャリア.com
■求人情報
自分に合ったバイト探し★Myピッタリ仕事.com
■バイト
"資格"でバイト探し!天職さがそ!.com
■バイト
いいバイト、あるある!aruアルバイト.com
■懸賞
アタックchanceで懸賞チャレンジ!
■産婦人科
病院探し!病気相談なら産婦人科マスター
■出産
妊娠!出産!育児!赤ちゃんマスターでお悩み解決!
■外為
外為・為替レートをチェック!外為マスター
■結婚
結婚マスター!結納・両親・マリッジブルーノお悩みに…
■先物
先物・取引!詳しくなる!先物マスター
■資格
資格!キャリアアップ!資格GETマスター★
■小説
小説・書籍ならオマカセ!小説マスター
■スポーツ
スポーツ!健康!デトックス!スポーツマスターにオマカセ!
■葬儀
お葬式・葬祭のことなら・・・葬儀マスター
■痩身
ダイエット・デトックス・痩身!スリムGETマスター
■脱毛
パーフェクトBODY目指せ!脱毛マスター
■着うた
最新!人気!定番!うたマスターで着うたCHECK!
■デコメ
キラ系かわいいデコメCHECK!デコメマスター
■転職
履歴書・マナー・転職テク!就職情報なら転職マスター
■バイク
ハーレー!改造!バイクマスターにオマカセ!
■派遣
派遣!転職!キャリアアップ!転職マスター
■ペット
カワイイ犬・猫を飼いたい!ペットマスター
■豊胸
薄着の季節…お悩み解決!豊胸マスター
■包茎
包茎のお悩みなら…包茎マスター
■レシピ
今晩のおかず…料理・レシピならレシピマスター
■モバグラMIXの人気キーワード
モバグラMIXの人気キーワード一覧
■外為
外為情報をいち早く!外為LINK
■求人
転職・就活なら求人LINKにオマカセ!
■金融
金融業界の勉強するなら!金融LINK
■車
TOYOTA!HONDA!BMW!車のコトなら車LINK
■モバグラMIXの人気キーワード2
モバグラmixの人気キーワード2
■モバグラMXIの人気キーワード3
モバグラMIXの人気キーワード3
■モバグラMIXの人気キーワード4
モバグラMIXの人気キーワード4
■モバグラMIXの人気キーワード5
モバグラMIXの人気キーワード5
■モバグラMIXの人気キーワード6
モバグラMIXの人気キーワード6
■モバグラMIXの人気キーワード7
モバグラMIXの人気キーワード7
■モバグラMIXの人気キーワード8
モバグラMIXの人気キーワード8
■モバグラMIXの人気キーワード9
モバグラMIXの人気キーワード9
■モバグラMIXの人気キーワード10
モバグラMIXの人気キーワード10
■モバグラMIXの人気キーワード11
モバグラMIXの人気キーワード11
■モバグラMIXの人気キーワード12
モバグラMIXの人気キーワード12
■モバグラMIXの人気キーワード13
モバグラMIXの人気キーワード13
■モバグラMIXの人気キーワード14
モバグラMIXの人気キーワード14
■モバグラMIXの人気キーワード15
モバグラMIXの人気キーワード15
■モバグラMIXの人気キーワード16
モバグラMIXの人気キーワード16
■モバグラMIXの人気キーワード17
モバグラMIXの人気キーワード17
■車査定
車査定.com
■献立レシピ1
レシピが月額99円
■献立レシピ2
レシピが月額99円
~派遣社員.com [05/27update] トップへ
(C)派遣社員.com