1. 程式人生 > >java中方法的覆蓋與覆寫

java中方法的覆蓋與覆寫

方法覆寫
a、  在子類中可以根據需要對從基類中繼承來的方法進行重寫。
b、  重寫方法必須和被重寫方法具有相同方法名稱、引數列表和返回型別。
c、  重寫方法不能使用比被重寫方法更嚴格的訪問許可權。
嚴格順序private>default>protecte>public ,這個與多型有關,講了多型就會明白得多。
當某個地方由父類修飾了,可以呼叫父類的某個方法。
若子類對該方法訪問更嚴格,當傳遞子類過來,那麼可能造成不可訪問.
覆寫與過載的區別
a、過載(Overloading)
Java中方法的過載,指的是在類中可以建立多個方法,它們具有相同的名字,但具有不同的引數列(引數型別和個數)和不同的定義。
而返回值的型別可以相同也不以不同,但是不能僅僅通過不同的返回值來區分過載函式。
呼叫方法的時候根據引數列表來判斷呼叫哪個方法。過載是一個類中的多型性表現。


b、覆寫(Overriding)
Java中,子類預設可以繼承父類中的方法,而不需要重新編寫相同的方法,但是有時候,
子類並不想原封不動的繼承父類中的方法,而是做出一定的修改,這就是採用方法的覆寫(也成為覆蓋)來實現的。
Java中覆寫指的是,在子類中對父類中同一重名函式實現部分加以改變,但與父類的該方法的方法名、返回型別和引數
列表都保持一致。即子類對父類中的函式進行重新定義,子類中的新方法將覆蓋父類原有的方法。覆寫是父類與子類之間的一種多型表現。