方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。
重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),如果在子類中定義某方法與其父類有相同的名稱和參數(shù),且方法的返回值類型與拋出異常的類型各自與父類的一致,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了。
重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。
另外:static,native及synchronized方法不能被重寫.
如果你認(rèn)為重寫只是在子類中簡單的替換了一個方法,你就很容易認(rèn)為static 方法也能 被重寫。事實上,我有很多包含們舉例指明static 方法能被重寫的代碼的郵件。然而,這 些并沒有考慮方法重寫在運(yùn)行時決定哪個版本的方法被調(diào)用的細(xì)節(jié)問題。下面的代碼似乎表 明static 方法是怎樣被重寫的