2012-01-12 109 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

相關問題