您的位置:首页 > 编程语言 > C#

Head First C# 中文版 图文皆译 第七章 接口和抽象类 page254

2009-03-18 13:33 671 查看
接口要求类必须实现某些方法、属性

一个类只可以继承自一个类。所以如果需要一种蜜蜂即会做StingPatrol的工作又会做NectarCollector的工作的时候,给这两个类分别创建一个子类是不行的。

蜂后的DefendTheHive()(保护蜂巢)方法只可以让StingPatrol对象去保护蜂巢。蜂后希望训练别的蜜蜂让它们也会用毒刺蜇人,但是蜂后无法命令别的蜜蜂去保护蜂窝:



 
NectarCollector对象懂得如何采集花粉,StingPatrol对象懂得如何防护蜂巢。即使蜂后可以通过给NectarCollector添加SharpenStinger()和LookForEnemies()方法来让花粉采集者学会防护蜂巢,但是蜂后还是无法把NectarCollector作为参数传入DefendTheHive()方法。或许蜂后可以用两个各版本的方法:



 



但是这个解决方法并不好。这两个方法几乎是一样的,它们都要都要被传入的参数的相同的方法。这两个方法唯一区别就是参数类型不同。你早就知道维护两个相同的方法是多么麻烦了。幸运的是,C#提供了接口来处理这种情况。接口定义其实现类必须实现的方法。接口要求实现它的类必须包含它定义的方法,否则,编译器将会报错。实现类可以直接编码这些方法,或者从父类继承来也可以,接口并不关心这一点。只要编译的时候可以找到这些方法就可以了。

接口要求其实现类实现接口中定义的所有方法和属性,否则,编译器将会报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# 编译器 工作