java重寫方法規(guī)則 被final修飾的類為什么不能被繼承?
被final修飾的類為什么不能被繼承?final表示最終的意思,它修飾的類是不能被繼承的;final修飾的方法能被繼承(Math類里就有),但是不能夠被重寫。其實關系并不復雜,你只需要記住這樣一句話:
被final修飾的類為什么不能被繼承?
final表示最終的意思,它修飾的類是不能被繼承的;final修飾的方法能被繼承(Math類里就有),但是不能夠被重寫。其實關系并不復雜,你只需要記住這樣一句話:final可用于聲明屬性、方法和類,分別表示屬性不可變,方法不可重寫,類不可繼承。當然final修飾的方法是可以被重載的。
final修飾的方法,子類能否繼承?
- Final類
- 當關鍵字fina用來修飾類時,其含義是該類不能在派生子類。換句話說,任何其他類都不能繼承用final修飾的類,即使該類的訪問限制為public類型,也不能被繼承;否則,將編譯報錯。
那么什么時候應該使用final修飾類呢?只有當需要確保類中的所有方法都不被重寫時才應該建立最終(final)類,final關鍵字將為這些方法提供安全,沒有任何人能夠重寫final類中方法,因為不能繼承。
- Final方法
當用final關鍵字修飾方法后,該方法在子類中將無法重寫,只能繼承。
要恰當使用final的方法,只有在子類覆蓋某個方法會帶來問題時,再將此方法設為final的方法,一般情況下可以不必使用。因為防止子類覆蓋會丟失一些面向對象的優(yōu)點,包括通過覆蓋實現(xiàn)的可擴展性。