多态性,参数多态性,Ad Hoc多态性

时间:2015-12-13 15:31:27

标签: polymorphism adhoc

我试图找出这些类型的多态性之间的差异。我无法找到关于Ad-Hoc多态性的更多资料。

我想说多态性是参数多态,但通常被称为多态性?我认为这是正确的吗?

我知道多态可以用于继承,但我不确定它可以提供哪些其他属性。

如果有人可以帮助定义这些类型的多态性,并且可能尝试给出明显的差异,那就太好了。

谢谢!

注意:Python中的每个示例都很棒。

1 个答案:

答案 0 :(得分:4)

多态性是一般概念。 Ad-hoc多态性和参数多态性是该概念的特化。 (根据the relevant Wikipedia article,还存在其他类型的多态性。)

Ad-hoc多态也称为函数重载,它指的是使用类型系统以便精确地解析将调用哪个方法。因此,我们可能有两个函数,都称为fn,其中一个接受int参数,而另一个接受String参数,并且根据传递的参数类型。

参数多态性基本上是泛型的使用。因此,Collection<T>接口可以说是多态的,因为它可以用作Collection<Integer>Collection<String>而不是mySite.azurewebsites.net: Static welcome page mySite.azurewebsites.net/webapp1: MVC 5 and HTML 5 web app mySite.azurewebsites.net/webapp2: MVC 5 and HTML 5 web app 。名称“参数”指的是通用参数的存在。

据我所知,python没有强大的类型概念,也没有支持泛型(C ++术语中的“模板”),所以这些概念可能不适用于Python。但是,我没有使用Python的实际经验,所以我可能错了。也许其他人可以启发我们。