栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

接口-有什么意义?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

接口-有什么意义?

关键是接口代表 合同
。任何实现类都必须具有的一组公共方法。从技术上讲,该接口仅控制语法,即,那里有什么方法,它们得到了什么参数以及它们返回了什么。通常,它们也封装语义,尽管只能通过文档进行封装。

然后,您可以使用接口的不同实现,并随意替换它们。在您的示例中,由于每个披萨实例都是一个,因此

IPizza
您可以
IPizza
在处理未知披萨类型的实例的任何地方使用。类型继承自的任何实例
IPizza
都可以保证可排序,因为它具有
Order()
方法。

Python不是静态类型的,因此类型会在运行时保留并查找。因此,您可以尝试

Order()
在任何对象上调用方法。只要对象具有这样的方法,运行时就很高兴,并且可能只是耸耸肩说“
Meh。”(如果没有)。在C#中不是这样。编译器负责进行正确的调用,如果只是随机的,
object
则编译器尚不知道运行时实例是否具有该方法。从编译器的角度来看,它是无效的,因为它无法验证它。(您可以使用反射或
dynamic
关键字来执行此类操作,但是我猜这有点远了。)

还要注意,通常意义上的接口不一定必须是C#

interface
,它也可以是抽象类甚至是普通类(如果所有子类都需要共享一些通用代码,则可以派上用场)但是
interface
就足够了)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号