在类的设计中,可以使用abstract关键字修饰类为抽象类,那么在基类中就不需要实现抽象类,而必须在派生类中实现基类的方法。但是,如果在基类中,有多个方法来形容一个动物的特性,如飞行的特性可以用来形容鸟,而世界上很多动物都会飞行,但是人类是无法飞行的,所以在人类这个派生类中实现飞行的方法是没有必要,也是降低的代码的可读性的。这里就可以通过virtual关键字实现虚方法,让派生类能够选择是否实现该方法,示例代码如下所示。
public class Animal //创建类
{
public virtual string Fly() //虚方法,飞行方法
{
return "Most Of The Animal Can Fly"; //返回值
}
}
public class People : Animal //创建派生类
{
public string country; //没有实现虚方法也可以
}
public class Bird : Animal //创建派生类
{
public string FLY() //鸟儿能飞行,实现一个虚方法
{
return "It Can Fly"; //返回值
}
}
上述代码中,人类不能飞行,所以没有必要实现Fly()方法,而鸟儿可以飞行,为了更好的描述一个对象,可以实现Fly()方法让对象能够飞行。
在类设计中,对于多数的派生类使用的方法,可以考虑将方法放置在基类中,当一个方法,例如飞行,有一些派生类不需要使用,如人类,则可以将此方法设置为虚方法。而当一个方法,例如吃东西,是每个派生类都必须使用的,则最好将此方法设计为抽象方法,强制每个开发人员必须实现该方法。