通过引用C#,可以定义不包含抽象方法的抽象类,那么将类定义为抽象类有什么用呢?
发布于 2012-06-01 02:50:24
基本上,我使用的经验法则是,当必须继承类才能实例化时,应该始终将类定义为抽象类。因为抽象类本身不能。
例如。假设您有一个Building类,它是抽象的。然后必须通过派生类对其进行实例化,例如,Bank或House。Building类中没有抽象方法这一事实与它是否抽象无关。
发布于 2012-06-01 02:46:16
具有属性的abstract类可用于表示继承中的基类。无法实例化抽象类。这可能很适合我们,因为我们不想让其他人为我们的基类创建对象。
您可以定义抽象类来定义对象的抽象性质。动物有眼睛。狗可以遗传自动物,所以它会有眼睛。我们可以创建一个Dog对象。但是我们不想创建一个Animal对象。
来自msdn,
抽象类的目的是提供多个派生类可以共享的基类的公共定义。例如,类库可以定义一个抽象类,该抽象类用作其许多函数的参数,并要求使用该库的程序员通过创建派生类来提供他们自己的类实现。
发布于 2012-06-01 02:46:36
通过引用C#,可以定义不包含抽象方法的抽象类
是的,绝对是
那么将类定义为抽象类有什么用呢?
主要是为了传达类应该派生的事实。通过使构造函数受保护可以达到类似的效果:没有人能够在不继承类的情况下创建类的实例。
https://stackoverflow.com/questions/10839412
复制相似问题