虚方法的抽象类

在类的设计中,可以使用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()方法让对象能够飞行。

在类设计中,对于多数的派生类使用的方法,可以考虑将方法放置在基类中,当一个方法,例如飞行,有一些派生类不需要使用,如人类,则可以将此方法设置为虚方法。而当一个方法,例如吃东西,是每个派生类都必须使用的,则最好将此方法设计为抽象方法,强制每个开发人员必须实现该方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值