\r\n\r\n

継承とコンテナ船の違い

oop(オブジェクト指向プログラミングの例:C++)では、「継承」と「コンテナ」が重要な概念となります。簡単に言うと、コンテナシップと継承は、クラスに追加のプロパティや振る舞いを提供することを目的としている。継承とは、あるクラスが親クラスを拡張することによって、そのクラスの特性や振る舞いを受け継ぐことができることである。一方、コンテナシップとは、あるクラスが異なるクラスのオブジェクトをメンバーデータとして含めることができる能力のことである...

後継者育成とコンテナ船

OOP(Object Oriented Programming 例:C++)の重要な概念として、「継承」と「コンテナ」があります。簡単に言えば、コンテイナーシップも継承も、クラスに追加のプロパティや振る舞いを提供することを目的としている。継承とは、あるクラスが親クラスを拡張することによって、そのクラスの特性や振る舞いを受け継ぐことができることである。一方、コンテナシップとは、あるクラスが異なるクラスのオブジェクトをメンバーデータとして取り込むことができる能力のことである。

相続とは?

前述したように、継承とは、あるクラスが親クラスを拡張することで、親クラスのプロパティや振る舞いを受け継ぐことができることである。継承は基本的に、既存のクラスのプロパティや振る舞いを、新しく定義されたクラスが拡張できるようにすることで、コードの再利用を可能にします。クラスAがクラスBを拡張する場合、クラスBを親(または親クラス)、クラスAを子(または派生クラス/サブクラス)と呼びます。このシナリオの例では、クラスAはスーパークラス(B)のすべてのpublicおよびprotectedプロパティとメソッドを継承します。サブクラスは、オプションで親クラスから継承した動作をオーバーライド(メソッドに新しい機能または拡張機能を提供)することができます。継承は、OOPにおける「is-a」の関係を表します。つまり、Bはある現実の実体を一般的に記述するクラスであるが、Aはその特殊化を指定するものであるということである。実際のプログラミングの問題では、Personクラスを拡張してEmployeeクラスを作成することができます。これを「専門化」といいます。ただし、Employeeクラスを先に作成し、それをPersonクラスに汎化する(=generalize)ことも可能です。この例では、Employee は person のすべての属性と振る舞いを持ち(つまり Employee も person である)、さらにいくつかの追加機能を含むことがあります(つまり Person は employee ではありません)。

コンテナ船とは?

コンテナ船とは、あるクラスが異なるクラスのオブジェクトをメンバーデータとして含めることができる機能である。例えば、クラスAはクラスBのオブジェクトをメンバとして含むことができる。ここで、Bで定義されたすべてのパブリックメソッド(または関数)は、Aクラスで実行することができます。Aクラスは容器となり、Bクラスは含有クラスとなる。コンテナ船はコンポジションとも呼ばれる。この例では、クラスAはクラスBから構成されていると言える。OOPでは、コンテナ船は「have-A」の関係を表している。注意すべきは、コンテナは、含有するクラスのすべてのパブリックメソッドを実行する権利を持っていても、他の機能を変更したり提供したりすることはできないことです。実際のプログラミングの問題では、クラス TextBox のオブジェクトはクラス Form に含まれることがあるので、Form は TextBox を含む(あるいは、Form は TextBox からなる)と言うことができます。

サクセスシップとコンテナ船の違い

  • 2020-11-03 06:57 に公開
  • 閲覧 ( 17 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ