![]() |
1
23
一个很好的例子可能是一个公共基类,它为派生类提供共享属性和其他成员,但不表示具体的对象。例如:
所有的宠物都有名字,但宠物本身是一个抽象的概念。宠物的例子必须是狗或其他动物。
这里的区别在于,基类声明所有pet至少由一个
|
![]() |
2
11
这样做的目的是强制实现者从类派生,因为它只为可能更专业的实现提供基础。因此,基类虽然没有任何抽象成员,但可能只包含核心方法和可以用作扩展基础的属性。
|
![]() |
3
8
我认为对你的问题有一个更准确的表述:为什么C#允许一个抽象类 只有 答案是:没有理由不这样做。也许有人有某种组织结构,他们喜欢在上面有一个不可实例化的类,即使它下面的类只是继承和不添加任何内容。没什么好理由 为了支持这一点。 |
![]() |
4
3
你说它——因为你不能实例化它;它只是一个模板。 如果您将它声明为抽象类,那么它就不是“真正的具体类”。作为设计选择提供给您。
抽象
真实世界的物体,并具有可读性。您可能需要声明类型为的参数
|
![]() |
5
1
|
![]() |
6
1
关于用法,使用
|
![]() |
7
0
编译器不会阻止实现逻辑,但在您的情况下,我只会省略
摘要
|
![]() |
8
0
下面是一个潜在的原因: Layer Supertype
没有理由这么做 在一个抽象类中只有具体的方法——只是不太常见。这个 层超型 在这种情况下,这可能是有意义的。 |
![]() |
9
0
我看到抽象类有两个主要用途:
|
![]() |
dallin · 数组中的逗号运算符是否有名称? 11 年前 |