我试图找出这些类型的多态性之间的差异。我无法找到关于Ad-Hoc多态性的更多资料。
我想说多态性是参数多态,但通常被称为多态性?我认为这是正确的吗?
我知道多态可以用于继承,但我不确定它可以提供哪些其他属性。
如果有人可以帮助定义这些类型的多态性,并且可能尝试给出明显的差异,那就太好了。
谢谢!
注意:Python中的每个示例都很棒。
答案 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的实际经验,所以我可能错了。也许其他人可以启发我们。