如果成员前面使用了abstract
修饰符标识,那么该成员就被称为抽象成员。主要应用于像各种多边形求
面积等逻辑统一但实例差异比较大的环境中。
概念
如果成员前面使用了abstract修饰符标识,那么该成员就被称为抽象成员。
使用说明
1. 抽象方法只是从逻辑上对操作进行了描述,并不对操作进行具体的实现。它和虚函数不同,虚函数中可以包含具体的运算来实现指定的操作。
2. abstract修饰符能够应用在类、方法前面,使用abstract修饰符声明的类只能作为基类来派生出其他的类,即抽象类不能创建具体的对象类、不能产生实例。
3. 抽象方法必须在抽象类中声明。
4. 抽象成员没有代码实现块,即抽象成员后面没有{}。
5. 抽象成员的访问权限不能是private。
6. 抽象方法前面不能使用static、virtual、override修饰符。
7. 抽象类可以派生出另一个抽象类。
8. 任何派生自抽象类的类必须使用override关键字来实现抽象类中所有的抽象成员,除非派生类本身也是抽象类。
9. abstract修饰符不能用于静态代码属性。
抽象类通过派生类实现了它本身的内部逻辑功能。派生类通过override关键字来重载代码属性和方法,实现了具体的逻辑功能,即更改和获取保护成员变量的数据。这样在主函数中通过对派生类进行实例化,就可以应用产生的对象输出类中保存的实际数据了。
抽象类主要应用于像各种多边形求面积等逻辑统一但实例差异比较大的环境中。
示例
using System; //引入命名空间
public abstract class A //定义抽象类A
{
/*
* 声明抽象成员,必须在抽象类中。
* 声明抽象成员OutPut(),没有实现方法。
*/
public abstract void OutPut();
}
class Test : A //定义派生类Test,基类为A
{
public override void OutPut() //用override来重新定义抽象成员,对抽象方法实例化
{
}
static void Main()
{
Test t = new Test(); //
t.OutPut(); //用实例化对象来引用OutPut()
}
}
输出结果:This is a abstract!