C ++中提到的多态性的比喻(来自Herbert Schildt)说:
一个简单的多态性例子可以在 汽车的方向盘。方向盘(即接口)是相同的 无论使用何种类型的实际转向机构。也就是说,方向盘工作 无论您的汽车是手动转向,动力转向还是齿轮齿条式转向,都是一样的。因此,一旦您知道如何操作方向盘,您就可以驾驶 任何类型的汽车。
我认为从之前的一些读数来看,方向盘的存在表示多态,而不是相同的功能。因此,在某些汽车中,将车轮转向左侧可能会使您向右移动。
哪一个更准确?还是我把它与Duck打字混淆了?
答案 0 :(得分:2)
方向盘本身不是指示多态性,而是方向盘背后的机制实际上执行表示多态性的转向功能。方向盘及其预期的行为(顺时针意味着右等)是interface
的隐喻。
方向盘代表interface
,而rack and pinion
,power
和manual
相当于某些可能的implementation
。
答案 1 :(得分:0)
多态性表示多种形式。因此,在你引用关于方向盘的多态性示例时,方向盘有许多形式,如你的报价所示,但使用或输出与实际实现无关。
现在,在你的例子中简单存在方向盘不是多态,因为简单的存在并不能说明这种方法是否有不同的形式。实际的实现确定方法是否属于不同类型,或者换句话说是多态的。