Head First C# 中文版 图文皆译 第七章 接口和抽象类 page254
来源:互联网 发布:男士商务包 知乎 编辑:程序博客网 时间:2024/05/20 06:22
接口要求类必须实现某些方法、属性
一个类只可以继承自一个类。所以如果需要一种蜜蜂即会做StingPatrol的工作又会做NectarCollector的工作的时候,给这两个类分别创建一个子类是不行的。
蜂后的DefendTheHive()(保护蜂巢)方法只可以让StingPatrol对象去保护蜂巢。蜂后希望训练别的蜜蜂让它们也会用毒刺蜇人,但是蜂后无法命令别的蜜蜂去保护蜂窝:
NectarCollector对象懂得如何采集花粉,StingPatrol对象懂得如何防护蜂巢。即使蜂后可以通过给NectarCollector添加SharpenStinger()和LookForEnemies()方法来让花粉采集者学会防护蜂巢,但是蜂后还是无法把NectarCollector作为参数传入DefendTheHive()方法。或许蜂后可以用两个各版本的方法:
但是这个解决方法并不好。这两个方法几乎是一样的,它们都要都要被传入的参数的相同的方法。这两个方法唯一区别就是参数类型不同。你早就知道维护两个相同的方法是多么麻烦了。幸运的是,C#提供了接口来处理这种情况。接口定义其实现类必须实现的方法。接口要求实现它的类必须包含它定义的方法,否则,编译器将会报错。实现类可以直接编码这些方法,或者从父类继承来也可以,接口并不关心这一点。只要编译的时候可以找到这些方法就可以了。
接口要求其实现类实现接口中定义的所有方法和属性,否则,编译器将会报错。
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page254
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page251
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page252
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page253
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page255
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page256
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page257
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page258
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page259
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page260
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page261
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page262
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page263
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page264
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page265
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page266
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page267
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page268
- 博客的第一天
- 面向 MID 进行用户界面设计十大解决方案
- 简单总结echo()和print()、require()和include()等易混淆函数的区别
- Linux 用户(user)和用户组(group)管理概述
- Apache Rewrite 理解
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page254
- 病毒木马:个人电脑中常见的安全风险与对策
- java与模式 工厂方法(factory method)
- 用javascript如何弹出“确定/取消”对话框?
- 下拉菜单
- 二、 防火墙中使用的核心技术
- C#中的委托和事件(上)
- VC++实现对远程计算机屏幕的监视
- Timer, Quartz 和 Spring 实现作业调度