我在任何地方都找不到这个问题。根据我的理解,继承应该/可能是抽象的子集。
最佳答案
首先您应该意识到,在解释这些术语和概念时始终存在一些余地。以下是我的看法。
抽象是概念,继承是技术实现。
抽象通常是指省略(不必要的)细节。相反的方向就是具体化。泛化也经常在这种情况下使用,基本上与抽象含义相同。
在计算机科学的背景下,这可以用来描述几个想法:
一是领域概念的建模。如
the class Car is an abstraction of real world automobiles. It uses an engine and four wheels to transport 1-5 people.
显然,这远不及描述真实汽车的信息密度,但它很可能是该应用程序上下文所需的全部信息。另一种是用它来描述多个领域实体之间的概念关系:
A Car is a Motorvehicle. A Bus is also a Motorvehicle. Both are used to transport people.
机动车辆是汽车和公共(public)汽车的抽象。它描述了运送人员的想法,但省略了具体人数的细节。第三个是接口(interface)和实现之间的区别。该接口(interface)通过隐藏实现细节并仅表示可以交互的表面区域来抽象实现。
继承是在代码中实现抽象的一种方法。它描述了采用基类(这是更一般或更抽象的东西)、继承其所有功能/属性/行为/含义并添加一些更多细节(或覆盖一些现有的)来创建派生类的过程(这是更具体的事情)。
关于c# - 抽象和继承有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57336414/