与多态相混淆:参数,包含,强制和重载

布鲁格森

在阅读stackoverflow问题时,普遍的共识似乎是过载不是多态性的一部分。

但是,我的OOP讲义指出:

“有四种多态性:参数,包含,强制和重载”。

在注释中,它指的是使用具有不同参数的方法进行重载,还涉及对运算符进行重载,例如,在整数和浮点数意义上的+。

Wikipedia还指出“使用函数重载,许多语言都支持Ad hoc多态性。”

因此,我对为什么人们说这不是多态性的一部分感到困惑,正如我认为的那样。对于一种方法,我们有不同的形式。

有人能详细说明吗?

谢谢。

强尼

如果严格定义“多态性”一词的含义,那么可以,重载就是多态性。这些方法具有相同的名称,不同的签名,并且运行时根据您使用的签名知道要使用哪种方法。这是同一方法的多种形式。它不是具有类和继承,动物,狗和猫等的多态性的“经典”描述。某些语言具有运算符重载。是否有许多相同类型的形式?

这实际上取决于您说的是多态。如果您说许多形式仅与对象有关,那么是的,就OOP而言,您不能将其重载为“真实”多态性,因为它们是方法,而不是对象。

多态性vs覆盖vs重载可以提供帮助

您可以看到有很多意见。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

与多态相混淆:参数,包含,强制和重载

来自分类Dev

与Gradle依赖相混淆

来自分类Dev

C ++多态性和重载?

来自分类Dev

C ++多态性,重载和继承

来自分类Dev

c ++中的动态多态和函数重载

来自分类Dev

与Java中的这种执行方式相混淆

来自分类Dev

强制多态参数为相同类型

来自分类Dev

多态性和参数?

来自分类Dev

多态性和参数?

来自分类Dev

与参数传递和路线混淆

来自分类Dev

可选参数和方法重载

来自分类Dev

多态和重载有什么区别?

来自分类Dev

C ++中的运算符重载和多态

来自分类Dev

多态 - 方法覆盖和重载不清楚

来自分类Dev

为什么包含和添加相互混淆?

来自分类Dev

与关于Python函数的最佳/最坏情况时间的答案相混淆

来自分类Dev

混淆在rvalues和lvalues上重载成员函数

来自分类Dev

我如何在重载函数中包含和重载函数

来自分类Dev

Python多态重载故障

来自分类Dev

多态和通过带指针的结构强制转换

来自分类Dev

强制转换和参数警告

来自分类Dev

在嵌套多态值中包含通用类型参数的用法

来自分类Dev

函数的强制参数和默认参数

来自分类Dev

不同类型的重载函数和参数

来自分类Dev

重载解析和显式模板参数

来自分类Dev

方法重载值和参考参数类型

来自分类Dev

虚函数默认参数和重载

来自分类Dev

按返回类型和参数重载

来自分类Dev

构造函数重载和默认参数