2012-01-12 22 views

回答

10

当你键入f(x)x属于几个类(比如A,B和C)时,计算机必须决定调用哪个方法(来自类A,B或C):这称为“方法查找”。

当代码演变时,多继承常常会造成问题。

想象一下,您已经编写了两个基类A和B,并且C类都从两者继承。一切正常。 几个月后,开发人员使用A类,完全不知道B类和C类(他不需要它们),为A类增加了一种新方法。他不知道,已经有了一种方法类B中的同名。类C的对象会发生什么? A或B的方法会被使用吗?在某些语言中,代码可能会失败,而在其他语言中,您可能会遇到未定义的行为和难以捕捉的错误。

+3

我想你的解释对s4方法有点困惑 - 它们属于函数而不是类。 – hadley 2012-01-13 02:36:54

相关问题