1
Late Binding和Overriding之間是否存在任何直接關係,類似於Early Binding和Overloading?他們(綁定/覆蓋/重載)可以被稱爲實現多態的方法,但是有沒有任何「直接關係」前:後期綁定是一個子/超概念覆蓋,反之亦然等?綁定vs多態
Late Binding和Overriding之間是否存在任何直接關係,類似於Early Binding和Overloading?他們(綁定/覆蓋/重載)可以被稱爲實現多態的方法,但是有沒有任何「直接關係」前:後期綁定是一個子/超概念覆蓋,反之亦然等?綁定vs多態
它們是正交(獨立的)概念。
當然,覆蓋通常意味着使用後期綁定,因爲你只知道在運行時對象的實際類型的實現。但這只是一個特例。
所以它可以被稱爲覆蓋是基於遲綁定和重載早綁定 - 「總是」? –
這是典型的情況,但它可能不同。假設你有一個基類「Pet」,以及派生類'Dog'和'Cat',以及一個虛擬方法'Speak'在這兩個派生類中被覆蓋。如果編譯器/解釋器看到以下語句:'Pet p = new Dog(); p.Speak();'它有足夠的信息來執行早期綁定(它知道p總是一個'Dog')。 –
好!明白了現在的意思:)謝謝。 –