この質問はどこにも見つかりませんでした。私の理解に基づくと、継承は抽象化のサブセットである必要があります。
まず最初に、このような用語や概念を解釈する際には常にある程度の余裕があることに注意してください。以下は私の見解です。
抽象化は概念であり、継承は技術的な実現です。
抽象化とは、一般に、(不要な)詳細を省略することを指します。反対の方向は具体化です。一般化もこのコンテキストでよく使用され、基本的に抽象化と同じ意味です。
コンピュータサイエンスの文脈では、これを使用していくつかのアイデアを説明できます。
1つは、ドメインの概念のモデリングです。以下のようにthe class Car is an abstraction of real world automobiles. It uses an engine and four wheels to transport 1-5 people.
明らかにこれはどこにも本物の車を記述するための情報密度に近いですが、それは非常によく、このアプリケーションのコンテキストのために必要とされるものすべてのかもしれません。
もう1つは、複数のドメインエンティティ間の概念的な関係を説明するために使用することA Car is a Motorvehicle. A Bus is also a Motorvehicle. Both are used to transport people.
です。自動車は、自動車とバスの両方を抽象化したものです。それは、何人の詳細を省きながら、人々を輸送するという考えを説明しています。
3つ目は、インターフェースと実装の違いです。インターフェースは、実装の詳細を非表示にし、対話できる表面領域のみを表すことにより、実装を抽象化します。
継承は、コードの抽象化を実現する1つの方法です。基本クラス(これはより一般的または抽象的なものです)を取得し、そのすべての機能/プロパティ/動作/意味を継承し、派生クラスを作成するためにいくつかの詳細を追加する(または既存の一部をオーバーライドする)プロセスを説明します(これはより具体的なことです)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加