スーパークラス
【英】super class
スーパークラスとは、オブジェクト指向においてクラスの親子関係が成り立つ場合の親側のクラスのことである。
スーパークラスは、狭義には、継承関係が成り立つ場合の継承元クラスを指すが、モデリングにおける概念表現である汎化を実現する手段の一つとして継承があることから、広義には汎化と特化の関係が成り立つ場合の汎化側のクラスを指すこともある。
スーパークラスを継承することで、スーパクラスの特性を含みつつ、継承先クラス(サブクラス)の独自の特性を付与することができる。ただし、継承は依存関係を引きずるため、クラス設計が不適切であった場合は、スーパークラスを継承したサブクラスの機能が破綻することも多い。このため、依存関係で成り立つ集合オブジェクトの枠を超えるような場合は、継承関係ではなく集約関係が推奨される。
なお、C++やMicrosoftの.NET系言語(VB.NET、C#)などにおいてはスーパークラスではなく基底クラスと呼ぶことが一般的である。
スーパークラス (計算機科学)
(基底クラス から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2017/10/09 16:37 UTC 版)
この記事の主題はウィキペディアにおける独立記事作成の目安を満たしていないおそれがあります。目安に適合することを証明するために、記事の主題についての信頼できる二次資料を求めています。なお、適合することが証明できない場合には、記事は統合されるか、リダイレクトに置き換えられるか、さもなくば削除される可能性があります。(2017年10月) |
計算機科学においてスーパークラス (英: superclass) とは、他の下位クラスの派生元となる上位クラスのことである。スーパークラスは親クラスや基底クラスとも呼ばれる。スーパークラスから派生したクラスは子クラス、派生クラス、あるいはサブクラスとして知られている。クラスAがクラスBのサブクラスであるとき、「クラスAはクラスBを拡張 (extends) する」とも言える。
スーパークラスは仮想関数の使用を通じて、特殊化された機能に対する汎用インターフェイスの提供を可能にする。
スーパークラスのメカニズムは、共通の機能をモジュールとなるオブジェクトにカプセル化することで実現される再利用性を持つことから、オブジェクト指向プログラミングで広範囲に利用される。
多くのオブジェクト指向言語は抽象クラスと具象クラス両方をサポートするだろう。
語源
スーパークラスは集合論で言うところの上位集合 (superset) を語源として持つ。
関連項目
- クラス (コンピュータ)
- サブクラス (計算機科学)
- 継承 (プログラミング)
- 実装継承
- 継承セマンティックス
- 仮想継承
- 上位集合
- 基底クラスのページへのリンク