我接受了技术面试。为了准备面试,我读了这篇文章:https://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions。
在文章中提到,一个好的候选人应该为多态性提供一个很好的定义,而不是诉诸于实例"。但是,我无法找到这样的定义。我发现的所有定义都很复杂。
没有使用示例,什么是好的定义?
答案 0 :(得分:0)
在谷歌搜索“多态”,第一个结果是
编程语言和类型理论,多态性(来自希腊语πολύς,polys,“many,much”和μορφή,morphē,“形式,形状”)是为不同类型的实体提供单一接口。多态类型是一种类型,其操作也可以应用于某些其他类型或类型的值。
这似乎是一个非常简单的定义。
答案 1 :(得分:0)
使用多态,您可以在不同类型的多个对象上调用相同的函数名称。编写程序时,您将绑定到您编程的类型的方法。因此,获得最多功能的方法是编程为一种通用类型。这种通用类型描述了一般功能。然后,您可以使用也包含这些常规功能的任何特定类型。您可以确定特定类型包含这些常规功能的方法是让特定类型签署"合同"说他们承诺包含这些一般功能,或者让他们使用继承。该合同也称为接口。
因此,在编程时,您必须知道函数的名称。否则,如果你调用的函数不存在,你的程序就会死掉。多态性允许我们100%确保不同类型的对象包含相同的功能。
答案 2 :(得分:0)
正如Bjarne Stroustrup所解释的那样 http://www.stroustrup.com/glossary.html#Gpolymorphism
"为不同类型的实体提供单一界面。虚函数通过基类提供的接口提供动态(运行时)多态性。重载的函数和模板提供静态(编译时)多态。 TC ++ PL 12.2.6,13.6.1,D& E 2.9。"
注意:几乎没有人有静态多态性的想法,人们通常只考虑动态。