C# 抽象类与抽象方法的作用与实例
2013-01-07 09:21
274 查看
在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("汪");
}
}
本文来源于:http://www.lmwlove.com/ac/ID855
那么我们什么时候应该用抽象类呢?
如果一个类设计的目点是用来被其它类继承的,它代表一类对象的所具有的公共属性或方法,那个这个类就应该设置为抽象类。
抽象类与其它的类有什么区别呢?
抽象类是不能够被实例化的。如果一个类中包含有抽象方法,那么这个类一定要声明为抽象类。同时,抽象方法一定需要在子类中重写,让抽象方法成为一个具体的实实在在的方法。
比如,我们要声明一个动物类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("汪");
}
}
本文来源于:http://www.lmwlove.com/ac/ID855
相关文章推荐
- C# 抽象类与抽象方法的作用与实例
- C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例
- C#抽象类与抽象方法--就是类里面定义了函数而函数里面什么都没有做的类
- 20141014C#面向对象抽象方法,抽象类,接口
- C# 抽象类与抽象方法
- c#学习笔记——抽象类、抽象方法、抽象属性
- C#第2次试验(1).创建一个抽象类A,该类中包含一个求两个数之和抽象方法。创建一个子类B,在B中重写求和方法,且使用方法重载使得方法可以分别计算整数、双精度、字符串。
- C#抽象方法与虚方法的区别实例
- C#抽象类、抽象方法、抽象属性
- C# 基础加强(五) 抽象类、抽象方法
- C# 抽象类与抽象方法
- C#中的类:接口、抽象类、抽象方法、虚拟方法
- C#中的虚方法、抽象方法、抽象类、接口的联系与区别
- C# 抽象类,抽象属性,抽象方法(实例讲解)
- C#--抽象类、抽象方法、多态机制
- 2.0 面向对象 类与实例(关键字)、封装、继承、多态(虚方法,抽象类,抽象方法,接口)
- c# 类,抽象类 抽象方法 的理解
- C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例
- java中抽象类、抽象方法、接口与实现接口实例详解
- C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例