java重載與重寫(xiě)的區(qū)別 為何不能通過(guò)返回值來(lái)區(qū)分重載方法?
為何不能通過(guò)返回值來(lái)區(qū)分重載方法?在Java中,重載是一個(gè)非常重要的特性。對(duì)于重載,我們就像用同一個(gè)詞來(lái)表達(dá)許多不同的意思。方法重載的規(guī)則非常簡(jiǎn)單,即每個(gè)重載方法都必須有一個(gè)唯一的參數(shù)類(lèi)型列表,什么是
為何不能通過(guò)返回值來(lái)區(qū)分重載方法?
在Java中,重載是一個(gè)非常重要的特性。對(duì)于重載,我們就像用同一個(gè)詞來(lái)表達(dá)許多不同的意思。方法重載的規(guī)則非常簡(jiǎn)單,即每個(gè)重載方法都必須有一個(gè)唯一的參數(shù)類(lèi)型列表,什么是唯一的參數(shù)類(lèi)型,即不同的參數(shù)個(gè)數(shù)、不同的參數(shù)類(lèi)型、不同的參數(shù)順序。那么,用返回值來(lái)區(qū)分過(guò)載法是否可行呢?例如,雖然以下兩個(gè)方法的名稱(chēng)和形式相同,但很容易區(qū)分:Java code void f(){}INTF(){reurn1}只要編譯器能夠根據(jù)上下文清楚地判斷語(yǔ)義,例如在int x=f()中,就可以分為重載方法。但是,有時(shí)您并不關(guān)心方法的返回值,您需要的是方法調(diào)用的其他效果。在這種情況下,可以調(diào)用該方法并忽略其返回值。那么,如果調(diào)用這樣的方法:F();Java如何確定要調(diào)用哪個(gè)F()?因此,根據(jù)重載方法的返回值來(lái)區(qū)分重載方法是不可行的。
JAVA中重載可以改變返回值嗎?
是,重載公式:同名的不同參數(shù)。只需確保方法名相同,參數(shù)不同。至于返回值,您可以更改也可以不更改
方法的重載并不顯式要求相同的返回類(lèi)型。你可以試試。當(dāng)發(fā)生重載時(shí),方法名應(yīng)該相同,但參數(shù)類(lèi)型和編號(hào)不同。返回值類(lèi)型可以相同也可以不同。返回類(lèi)型不能用作重載函數(shù)的區(qū)分標(biāo)準(zhǔn)