在C#中,允许把类和方法声明为抽象类与抽象方法,具体的声明方法是在类名或方法名前加上
abstract关键字。
那么我们什么时候应该用抽象类呢?如果一个类设计的目点是用来被其它类继承的,它代表一类对象的所具有的公共属性或方法,那个这个类就应该设置为抽象类。
抽象类与其它的类有什么区别呢?抽象类是不能够被实例化的。如果一个类中包含有抽象方法,那么这个类一定要声明为抽象类。同时,抽象方法一定需要在子类中重写,让抽象方法成为一个具体的实实在在的方法。
比如,我们要声明一个动物类animal,然后有其它的类Cat(猫),Dog(狗)等具体的类来继承它,那么这个动物类就应该声明为抽象类。因为animal只是一个名词,不代表任何具体的对象,它只是代表所有动物所拥有的共同特征,所以animal类是根本不可能被实例化的。同时,如果所有动物都必须声明"叫"这样一个方法的话,那么,我们可以在animal类中声明一个抽象方法shout(),因为抽象方法是必须在子类中重写的,所以这就限制了所有继承自animal类都必须重写shout()方法。
实例:
声明Animal类
abstract class Animal //声明Animal为抽象类
{
……
protected abstract void Shout(); //声明Shout()方法为抽象方法,那么所有继承Animal类的子类都必须重写Shout()方法
}
声明Dog类,继承自Animal类
class Dog:Animal
{
protected override vod Shout()
{
response.write("汪");
}
}
^鍕 愰b&