在计算机科学中,多态是一种编程语言功能,它允许使用统一的界面来处理不同数据类型的值。
在使用面向对象的编程语言进行的计算机编程中,鸭子类型是一种动态类型的类型,其中对象的当前方法和属性集确定有效的语义,而不是其从特定类或特定接口的实现继承。
我的解释是,基于鸭子的类型,对象的方法/属性确定了有效的语义。这意味着对象的当前形状决定了它所坚持的界面。
从多态性可以说,如果一个函数接受多种不同的数据类型,只要它们支持一个接口,则该函数就是多态的。
因此,如果一个函数可以忽略类型,则它可以接受多种不同的数据类型并对其进行操作,只要这些数据类型具有正确的方法/属性并因此维护接口即可。
(术语“接口”的使用不是作为代码结构,而是作为描述性的文档结构)。
- 鸭型与多态性的正确关系是什么?
- 如果一种语言可以鸭式输入,是否意味着它可以做到多态?