定义抽象类和抽象方法的目的就是为子类提供一种规定,约束子类的行为。C#通过方法重写来实现抽象方法。当一个抽象基类派生一个子类时,子类将继承基类的所有特征,重新实现所有抽象方法。在子类中实现基类的抽象方法,是使用override关键字来重写基类方法。语法如下:
访问修饰符 override 返回类型 方法()
{ //方法体}重写抽象方法和重写虚拟方法是一样的。不同的是在基类一种是虚拟方法,另一种是抽象方法。通过override关键字可以在子类中重写方法,这样每种动物的叫声不相同了。
抽象类和抽象方法的作用:
using System;
public abstract class Animal{ public abstract void Cry();}public class Dog: Animal
{ public override void Cry(){ Console.WriteLine("狗的叫声是汪汪");}}public class Cat: Animal
{ public override void Cry(){ Console.WriteLine("猫的叫声是喵喵");}}public class Sheep: Animal
{ public override void Cry(){ Console.WriteLine("羊的叫声是咩咩");}}class Test
{ public static void Main(){ Dog mydog = new Dog(); mydog.Cry(); Cat mycat = new Cat(); mycat.Cry(); Sheep mysheep = new Sheep(); mysheep.Cry();}
}在抽象类Animal中定义了抽象方法Cry(),在派生的子类重写这个方法,添加了具体实现。在Main()方法中,实例化了3个子类对象,访问了各自重写的方法。