C# 允许把类和函数声明为abstract,分别称为抽象类和抽象方法。
抽象函数就是只有函数的定义没有函数体的函数:
public abstract void Attack();//抽象函数
如果一个类中含有抽象的函数,那么这个类必定是抽象的,也就是说必定是抽象类:
abstract class AttackBase
{
public void AttackName()
{
Console.WriteLine("这是普通的方法");
}
public abstract void Attack();//抽象方法
}
抽象类中,可以包含普通的方法和抽象的方法。
上面已经说过了 抽象函数只含有定义和函数体,那么这个抽象类就是不完整的,我们不能使用抽象类去构造对象。
所以我们必须要在子类中重写父类 里面的抽象函数。
简单实例
class Program
{
static void Main(string[] args)
{
Attack1 attack1=new Attack1();
attack1.Attack();
attack1.AttackName();
}
}
abstract class AttackBase
{
public void AttackName()
{
Console.WriteLine("这是普通的方法");
}
public abstract void Attack();//抽象方法
}
class Attack1 : AttackBase
{
public override void Attack()//必须实现抽象方法,否则会报错
{
Console.WriteLine("这是子类的方法");
}
}
程序运行结果:
这是子类的方法
这是普通的方法
这里与虚方法不同, 子类中可以不用重新虚方法,但是子类中一定要重写抽象方法!
欢迎评价和指正!谢谢。