クラスvsオブジェクト階層
-
11-10-2019 - |
質問
クラスの階層をどのように説明しますか。
私のGoogleパワーは、「クラスの階層」を検索したときに、クラスの編成方法とそれらの間の相続関係のいくつかの例を得たので、私のGoogleパワーが低下したと思います。それはすべてクラスの階層についてですか? C開発者にクラスの階層をどのように説明しますか?
また、クラス階層とオブジェクト階層の違いは何ですか?
実際、私は土曜日に私のオフィスメイトにプレゼンテーションを行い、非常に多くの理論的トピックに出くわします:(
どんな助けも感謝します。
どうもありがとう
解決
数行で答えようと思います。
a クラス階層 おそらく、クラスとそれらの間の継承リンクによって構成された構造を指します。たとえば、持っているかもしれません class Car
それは継承します class Vehicle
, 、 等々。クラスの階層を構成します。
今、あなたがのインスタンスを作成するとき Car
を使用して new
オペレーター、あなたはaを取得します Car
物体;階層は含まれていません。つまり、2つのクラスのように、「即興でリンクされた2つのオブジェクト」はありません。インスタンス時に、クラスの階層は「平らになる」と言えます。
フレーズ オブジェクト階層, したがって、多くの場合、全体/部品構造を指します。おそらく名前が付けられた別のクラスがあるかもしれません Wheel
, 、からのリファレンス Car
に Wheel
そのため、車には最大4つのホイールが含まれている可能性があります(必要に応じて、車のオブジェクトに車輪の配列、または他の種類の容器を想像してください)。この配置は、オブジェクトの実行時間(「集約」または「構成」と呼ばれることもあります)の関係が主要なリンクであるオブジェクトの実行時間を実行する(階層ではなく)グラフを構成します。
要約すると、クラスの階層とオブジェクトの階層はまったく異なり、関連していません。
これが役立つことを願っています。