執行時多態性是面向對象程序設計代碼重用的一個最強大機制。Java多態性的概念也能夠被說成“一個接口。多個方法”。Java實現執行時多態性的基礎是動態方法調度,它是一種在執行時而不是在編譯期調用重載方法的機制。
方法的重寫Overriding和重載Overloading是Java多態性的不同表現。
重寫Overriding是父類與子類之間多態性的一種表現。重載Overloading是一個類中多態性的一種表現。假設在子類中定義某方法與其父類有同樣的名稱和參數。我們說該方法被重寫(Overriding)。
子類的對象使用這種方法時,將調用子類中的定義。對它而言。父類中的定義如同被“屏蔽”了。
假設在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。
Overloaded的方法是能夠改變返回值的類型。方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中Java多態性的一種表現。假設在子類中定義某方法與其父類有同樣的名稱和參數。我們說該方法被重寫 (Overriding)。子類的對象使用這種方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。
假設在一個類中定義了多個同名的方法。它們或有不同的參數個數或有不同的參數類型。則稱為方法的重載(Overloading)。Overloaded的方法是能夠改變返回值的類型。
當超類對象引用變量引用子類對象時,被引用對象的類型而不是引用變量的類型決定了調用誰的成員方法,可是這個被調用的方法必須是在超類中定義過的,也就是說被子類覆蓋的方法。 (可是假設強制把超類轉換成子類的話,就能夠調用子類中新加入而超類沒有的方法了。
)