継承と構成の違いは何ですか

目次:

Anonim

NS 主な違い 継承と構成の間はそれです 継承により、新しいクラスの既存のクラスのプロパティとメソッドを使用できますが、コンポジションは、関連付けられたオブジェクト間の所有権を記述する特別なタイプの集計です。

オブジェクト指向プログラミング(OOP)は、ソフトウェア開発で使用される主要なパラダイムです。これにより、プログラマーは一連のオブジェクトを使用してソフトウェアをモデル化できます。オブジェクトは、状態と動作を持つエンティティです。開発者は、クラスを使用してオブジェクトを作成します。したがって、クラスは青写真です。さらに、クラスにはプロパティとメソッドが含まれています。プロパティはオブジェクトの状態を表し、メソッドはオブジェクトの動作を表します。さらに、継承と構成は、OOPにリリースされた2つの概念です。

集約、クラス、構成、継承、メソッド、オブジェクト、OOP

継承とは

継承とは、新しいクラスですでに存在するクラスのプロパティとメソッドを使用することを指します。この既存のクラスを親クラス、スーパークラス、または基本クラスと呼びます。新しいクラスは、子クラス、サブクラス、または派生クラスと呼ばれます。継承のため、開発者は最初からコードを書く必要はありません。彼は、継承を使用して、新しいクラスの既存のクラスのプロパティとメソッドを使用できます。したがって、継承によりコードの再利用性が向上します。

継承にはさまざまな種類があります。

単一レベルの継承 –たとえば、AとBの2つのクラスがあるとします。クラスBはクラスAから継承します。次に、これは単一レベルの継承です。

マルチレベルの継承 –この継承タイプには中間クラスがあります。たとえば、A、B、Cの3つのクラスがあるとします。クラスCはクラスBから継承し、クラスBはクラスAから継承します。

多重継承 –この概念を理解するために、A、B、およびCの3つのクラスがあると想定します。クラスCはクラスAとBの両方から継承します。Cはサブクラスであり、AとBはスーパークラスです。

階層継承 – A、B、Cの3つのクラスがある場合。クラスBとCはクラスAを継承します。したがって、クラスAはスーパークラスであり、クラスBとCはサブクラスです。

ハイブリッド継承 –これは、多重レベル継承と多重継承の組み合わせです。 A、B、C、およびDがクラスの場合、BとCはAから継承し、DはBとCから継承します。

アグリゲーションとは

構成を理解する前に、集約を理解することが重要です。 OOPでは、オブジェクトはメソッドを使用して相互に通信します。集約は、オブジェクト間の「持っている」関係を説明する関連付けです。 2つのオブジェクト間に依存関係はありません。たとえば、教室と学生を想定します。学生オブジェクトは、教室オブジェクトなしで存在できます。つまり、これは集約です。言い換えれば、部分が全体の外側に存在する可能性がある場合、これを集約と呼びます。

構成とは

構成は、所有権を意味する特殊なタイプの集計です。オブジェクトは別のオブジェクトに依存しており、依存関係があります。学校のオブジェクトと教室のオブジェクトを見てみましょう。教室オブジェクトは、学校オブジェクトなしでは存在できません。学校のオブジェクトが破壊されると、教室のオブジェクトも破壊されます。したがって、これら2つのオブジェクト間には依存関係があります。だから、これは構成です。言い換えれば、その部分が全体の外に存在できない場合、それをコンポジションと呼びます。

継承と構成の違い

意味

継承は、既存のクラスのプロパティとメソッドを使用して新しいクラスを作成する方法論ですが、コンポジションは、所有権を意味する特殊なタイプの集計です。したがって、これが継承と構成の主な違いです。

機能性

使用法

継承とコンポジションのもう1つの違いは、継承によってコードの再利用性が提供されるのに対し、コンポジションでは関連付けを表すことができることです。

結論

継承と構成は、OOPに関連する概念です。継承とコンポジションの主な違いは、継承では新しいクラスの既存のクラスのプロパティとメソッドを使用できるのに対し、コンポジションは関連付けられたオブジェクト間の所有権を記述する特殊なタイプの集計であるということです。

参照:

1.キャリア、人々。 6 5集約と構成の使用、People Career、2015年5月22日、こちらから入手できます。 2.「Javaでの継承。」 Www.javatpoint.com、ここから入手できます。

画像提供:

1. Plukeによる「継承図」– Commons Wikimediaによる自作(CC0)

継承と構成の違いは何ですか