用多态取代条件表达式

描述 

如果有一个条件表达式,根据对象类型的不同而选择不同的行为 可以将这个条件表达式的每个分支放进一个子类内的覆写函数中,然后将原始函数声明为抽象函数 

double getSpeed(){
    switch (_type){
        case EURAPEAN:
                return getBaseSpeed();
        case AFRICAN:
                return getBaseSpeed() - getLoadFactor() * _numberOfCocounts;
        case NORWEGION_BLUE:
                return (_isNailed) ? 0 : getBasedSpeed(_voltage);
    }
}
复制代码



动机

如果需要根据对象的不同类型而采取不同的行为,多态使我们可以不用编写明显的条件表达式

正因为有了多态:“类型码的switch语句” 以及“ 基于类型名称的if-else” 语句 在面向对象中很少出现。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值