Product Design, Manufacturing & Innovation Resources
» 継承(オブジェクト指向プログラミング)

継承(オブジェクト指向プログラミング)

1967
  • Kristen Nygaard
  • Ole-Johan Dahl
Programmer coding inheritance in object-oriented programming at a modern office.

(画像はイメージです)

継承は、 オブジェクト指向プログラミング 新しいクラス(サブクラスまたは派生クラス)は、既存のクラス(スーパークラスまたは基底クラス)に基づいて作成され、その属性とメソッドを継承します。これにより、コードの再利用性が向上し、クラス間の自然な階層構造が確立されます。サブクラスは、継承した動作を拡張またはオーバーライドできるため、共通のインターフェースを維持しながら、より具体的な実装が可能になります。

継承は、クラス間の「is-a」関係を容易にします。たとえば、「Dog」は「Animal」の一種です。この場合、「Animal」はスーパークラスとなり、「age」や「eat()」などの一般的な属性とメソッドを持ちます。「Dog」クラスはサブクラスとなり、これらのプロパティを継承し、「breed」や「bark()」などの独自のプロパティを追加します。これにより、共通のロジックがスーパークラスで一度定義され、すべてのサブクラスで再利用されるため、コードの重複を回避できます。スーパークラスに加えられた変更は、すべてのサブクラスに自動的に反映されるため、メンテナンスが簡素化されます。

継承には、単一継承(クラスが1つのスーパークラスのみから継承する)、多重継承(クラスが複数のスーパークラスから継承する)、多段階継承(クラスがサブクラスである別のクラスから継承する)など、さまざまな種類があります。継承は強力ですが、スーパークラスとサブクラス間の複雑さや密結合を引き起こす可能性もあります。過剰に使用すると、理解や保守が困難な、深く複雑な階層構造が生じる可能性があります。現代の設計では、コードの再利用を実現するためにオブジェクトが別のオブジェクトのインスタンスを含む「has-a」関係を表すコンポジションが、継承よりも優先されることがよくあります。

UNESCO Nomenclature: 1203
コンピュータサイエンス

タイプ

抽象システム

混乱

実質的な

使用法

広く普及している

前駆物質

  • 生物学と哲学における階層的分類の概念
  • 他のデータ構造を含むことができるデータ構造
  • 大規模ソフトウェアシステムにおけるコード再利用の必要性
  • クラスと継承を導入したシミュラ言語の設計

アプリケーション

  • gui widget toolkits (e.g., a ‘button’ class inheriting from a ‘control’ class)
  • ウェブ開発のためのフレームワーク(例:基本コントローラを継承するコントローラクラス)
  • game development (e.g., ‘orc’ and ‘elf’ classes inheriting from a ‘character’ class)
  • 生物学的分類のモデリング
  • プログラミング言語で特殊な例外型を作成する

特許:

NA

潜在的なイノベーションのアイデア

ボットによるトラフィック(現在1日あたり4万件以上)を排除するため、このコンテンツはコミュニティメンバー限定となっています。
> ログイン < または > 登録 < (100%無料)でこれにアクセスできます。他のすべての制限付きコンテンツとツールも同様です。

関連: 継承、サブクラス、スーパークラス、派生クラス、基底クラス、コードの再利用、階層構造、is-a 関係、ポリモーフィズム、オーバーライド。

歴史的背景

継承(オブジェクト指向プログラミング)

1953
1960
1960
1967
1970
1970
1970
1952
1956
1960
1967
1967
1970
1970
1970

(日付が不明または関連性がない場合、例えば「流体力学」などでは、その注目すべき出現時期の概算値が提示されます。)

関連する発明、革新、および技術原理

フルサイズの画像とダウンロードは、登録会員のみが100%無料で利用できます。