2016-09-14 5 views
2

属性aStuffを含むクラスAを持つダイアグラムを持ち、クラスAがクラスBとの関係を持つ場合、クラスBはaStuffにアクセスし、aStuffをbStuffという新しい属性で含むことができます。しかし、クラスBがクラスCとクラスDの2つの子クラスの親である場合、それらはクラスBから継承されるため、bStuffにもアクセスできることを意味しますか?クラスは親クラスと最初のクラスの属性を保存する関係を持ち、保存された属性を継承できますか?

基本的に、aStuffはbStuffとして保持され、クラスCとDはbStuffを継承でき、Aクラスとの関係を持たずにaStuffに保持されている値を得ることができますか?

貧弱な言葉遣いについては申し訳ありません。

答えて

2

と呼ばれています。

上位クラスの属性を継承しているため、参照する必要はありません。

クラス階層は、共通要素のために相互参照するクラスで構成できます。

病院スタッフのロスタのため、この構造を考えてみましょう:

従業員は、スーパークラスである - 最もトップ1。

従業員名前、従業員ID、給与などの共通要素があります。

従業員は、医師、看護師、看護師など、多くの種類のうちの1つです。それらのそれぞれは、独自の特定の情報を持っています(専門医、部署割り当てなど、特定の病棟の看護師)。

これらはすべて従業員であり、従業員クラスの属性を継承しますが、サブクラスに格納されている属性を区別するための追加の詳細があります。

さらに進んで、自分のタイプ(出席、居住、専門家など)に基づいて医師をさらにサブクラスに分けることができます。

階層の深さに制限はありません。各サブクラスは、データを分割する量に応じて、好きなだけサブクラスをいくつでも持つことができます。

階層構造内に複数のサブクラスを配置する必要はありません。しかし、いくつかのケースでは、あなたがいる

enter image description here

+0

継承を表示する場合は、関連ではなく継承コネクタ(白抜きの三角形)を使用してください。それを修正してください。 –

+0

@ThomasKilian appologies、それは私が何を意味するかを実証するためにペイントで素早く一緒に投げたものでした。例を更新しました – Takarii

+0

心配はいりません。今それは修正されました:-) –

0

はい。それは、「マルチレベルの継承」のショートそうで

enter image description here

+0

必要があるかもしれない、(> C - - > B A)私はあなたが分裂を必要としないかもしれないことのような場合にはそれを主張したいあなたは、単に線形の進行を持つことができます一般化ではなく指向性のある関連付けを使用します。 –

関連する問題