Head First C# 中文版 图文皆译 第六章 继承 page221

每个子类都扩展它的基类

你并不会被局限于一个子类继承来的方法...你已经知道这一点了!毕竟你已经自己构建类很久了。向一个类添加继承就是把已经创建好的类拿过来,并通过添加属性,字段,方法来扩展它。所以如果你要给狗添加一个Fetch()方法,这是很普通的。这不会继承或者覆盖任何东西--只有狗才有这个方法,河马,狼,犬科动物,动物等等类都不会得到这个方法。

https://p-blog.csdn.net/images/p_blog_csdn_net/cuipengfei1/EntryImages/20090302/2009-03-02_13-18-21.jpg

C#总是会调用最具体的方法

如果你让狗对象转悠(Roam()方法),只有一个方法可以做到--就是Animal中的版本。那要是要让狗出声音呢?调用的是哪个MakeNoise()方法呢?要搞明白这一点并不难。Dog类中的方法告诉你狗是怎么做这件事儿的。如果这个方法是在Canine中的话,那就是告诉你所有的犬科动物都是这样做这件事儿的。如果它在Animal中的话,那就是描述了一个普遍性的、对于所有动物都适用的行为。所以如果你让狗出声音的话,C#会先去Dog类中找适用于狗的这种行为。如果Dog类没有这种行为,就去Canine中找,然后再去Animal中找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值