首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有抽象方法的抽象类

没有抽象方法的抽象类
EN

Stack Overflow用户
提问于 2012-06-01 02:44:44
回答 9查看 657关注 0票数 1

通过引用C#,可以定义不包含抽象方法的抽象类,那么将类定义为抽象类有什么用呢?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-06-01 02:50:24

基本上,我使用的经验法则是,当必须继承类才能实例化时,应该始终将类定义为抽象类。因为抽象类本身不能。

例如。假设您有一个Building类,它是抽象的。然后必须通过派生类对其进行实例化,例如,Bank或House。Building类中没有抽象方法这一事实与它是否抽象无关。

票数 1
EN

Stack Overflow用户

发布于 2012-06-01 02:46:16

具有属性的abstract类可用于表示继承中的基类。无法实例化抽象类。这可能很适合我们,因为我们不想让其他人为我们的基类创建对象。

您可以定义抽象类来定义对象的抽象性质。动物有眼睛。狗可以遗传自动物,所以它会有眼睛。我们可以创建一个Dog对象。但是我们不想创建一个Animal对象。

来自msdn

抽象类的目的是提供多个派生类可以共享的基类的公共定义。例如,类库可以定义一个抽象类,该抽象类用作其许多函数的参数,并要求使用该库的程序员通过创建派生类来提供他们自己的类实现。

票数 2
EN

Stack Overflow用户

发布于 2012-06-01 02:46:36

通过引用C#,可以定义不包含抽象方法的抽象类

是的,绝对是

那么将类定义为抽象类有什么用呢?

主要是为了传达类应该派生的事实。通过使构造函数受保护可以达到类似的效果:没有人能够在不继承类的情况下创建类的实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10839412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档