gpt4 book ai didi

c# - 为什么我们不需要动态语言的接口(interface)?

转载 作者:IT老高 更新时间:2023-10-28 21:09:13 26 4
gpt4 key购买 nike

是不是因为动态类型我们在 python 中不需要接口(interface)的概念(如 Java 和 C#)?

最佳答案

interface 作为关键字和工件是由 Java1 引入的(C# 从那里得到它)来描述对象必须遵守的契约是什么。

但是,接口(interface)一直是面向对象范式的关键部分,它基本上代表了对象必须响应的方法。 Java 只是强制执行这种机制来提供静态类型检查。

因此,动态 (OO) 编程语言确实使用接口(interface),即使它们不会静态检查它们。就像其他数据类型一样,例如在 Ruby 中:

 @i = 1;

您不必声明类型为 FixNumi,您只需使用它即可。接口(interface)也是如此,它们只是流动。权衡是,您不能对此进行静态检查,并且故障仅在运行时显示。

另一方面Structural type (或者我称之为静态鸭子类型:P)被 Go 或 Scala 等语言使用,提供了两全其美的效果。

<子>1. 见 Daniel Earwicker 关于 CORBA interface 关键字

的评论

关于c# - 为什么我们不需要动态语言的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3062701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com