OOPの観点から、派生クラスと継承クラスの間に違いはありますか?それとも単に用語ですか?
5 に答える
継承を使用する場合、継承されたクラスは基本クラスと呼ばれ、継承されたクラスは派生クラスと呼ばれます。
派生クラスという用語は、別のクラスから継承するクラスの優先C ++用語であり、C++用語では基本クラスと呼ばれます。したがって、C ++では、あなたが尋ねる用語は同じです。
ニールの答えは私を少し混乱させたので、私はいくつかの公開ソースをチェックしました。
基本クラスとサブクラス(SubClass extends BaseClass
Java用語では)を考えてみてください。
- サブクラスは基本クラスを派生し(サブクラスは基本クラスの派生クラスです)、
- サブクラスはベースクラスから継承します(ベースクラスはサブクラスの継承されたクラスです)
したがって、私の意見では、両方の用語は、クラス間の同じ関係を定義しますが、異なる観点から定義します。
Bertran Meyerによる継承用語(オブジェクト指向ソフトウェア構築、p.464):
基本的な規則と用語
「相続人」と「親」に加えて、次の用語が役立ちます。
クラスCの子孫は、 C自体を含め、Cから直接または間接的に継承するクラスです 。(正式には:Cまたは再帰的にCの継承者の子孫です。)Cの祖先はクラスAであり、CはAの子孫です。
文献では、「サブクラス」と「スーパークラス」という用語にも出くわしますが、あいまいなため、これらの用語は使用しません。「サブクラス」は相続人(直系の子孫)を意味する場合もあれば、より一般的な意味で適切な子孫として使用される場合もあり、どちらが常に明確であるとは限りません。さらに、この単語の「サブセット」の意味が必ずしも正当化されるとは限らないことがわかります。
メソッドをオーバーライドする場合、Delphiで次のように記述します。
inherited; // so "inherited" is the base class
それ以外の
base.BaseImplementation(); // C#