方法的重載:(用於實現相同的功能,但需要不同的參數滿足不同的使用者)在同一個類別中。
是指在一個類別中可以定義相同的名字,相同或不同的回傳值,但參數不同的多個方法(參數個數或參數類型)。呼叫時,運用重載,對於使用者使用API來說,就簡單方便。不用為相同功能的方法取不同的名字,話說起來也方便,對使用者來說做相同的事情,像是呼叫同一個函數一樣。構造方法也可以重載。只要程式自己定義了建構方法,系統就不提供預設的建構方法。
方法的覆寫(重寫):(子類別覆寫父類別的方法,在不同的類別中)
方法的重寫(override/ overwrite)
與重載差異:方法重載是定義多個函數名稱在一個類別中相同回傳型別相同,但參數不同的
重寫方法時:最好是採用copy父類別的此函數
1、 在子類別中可以根據需要對從基底類別繼承來的方法進行重寫。
2、 重寫方法必須和被重寫方法具有相同方法名稱、參數清單和傳回類型。
3、 重寫方法不能使用比重寫方法更嚴格的存取權限。
嚴格順序private>default>protecte>public ,這個與多態有關,講了多態就會明白很多。當某個地方由父類別修飾了,可以呼叫父類別的某個方法。若子類別對此方法存取更嚴格,當傳遞子類別過來,那麼可能造成不可存取
java的多態:重載+覆寫
問題:Java中使用什麼機制實現多態?
多態是Java物件導向的特徵之一,Java中透過重載和覆寫來完成多態性的不同表現。但是二者是有差別的。
1)重載(Overloading)
Java中方法的重載,指的是類別中可以建立多個方法,它們具有相同的名字,但具有不同的引數列(參數型別和個數)和不同的定義。而傳回值的類型可以相同也不以不同,但是不能只透過不同的回傳值來區分重載函數。呼叫方法的時候會根據參數列表來判斷要呼叫哪個方法。重載是一個類別中的多態性表現。
2)覆寫(Overriding)
Java中,子類別預設可以繼承父類別中的方法,而不需要重新編寫相同的方法,但是有時候,子類別並不想原封不動的繼承父類別中的方法,而是做出一定的修改,這就是採用方法的覆寫(也成為覆蓋)來實現的。 Java中覆寫指的是,在子類別中對父類別中相同重名函數實作部分加以改變,但與父類別的該方法的方法名稱、傳回型別和參數清單都保持一致。即子類別對父類別中的函數進行重新定義,子類別中的新方法將覆寫父類別原有的方法。覆寫是父類別與子類別之間的一種多型表現。
以上是JAVA方法的重載與覆寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!