1. 程式人生 > >Overload和Override的區別。Overloaded的方法是否可以改變返回值的型別?

Overload和Override的區別。Overloaded的方法是否可以改變返回值的型別?

我的理解是,過載可以改變返回值型別,但是如果只是返回值型別不一樣是算不上過載的。過載的判斷條件還是根據引數來,只不過是說過載的函式可以返回值不一樣,就是說過載可以決定返回值型別,但是返回值型別不能決定過載,不知道明白不明白。。

方法的重寫Overriding和過載Overloading是Java多型性的不同表現。重寫Overriding是父類與子類之間多型性的一種表現,過載Overloading是一個類中多型性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 (Overriding)。子類的物件使用這個方法時,將呼叫子類中的定義,對它而言,父類中的定義如同被"遮蔽"了。如果在一個類中定義了多個同名的方法,它們或有不同的引數個數或有不同的引數型別,則稱為方法的過載(Overloading)。Overloaded的方法是可以改變返回值的型別。



Overloaded的方法是可以改變返回值的型別。
這句話是正確的,唯一區分方法過載的是方法的引數列表不同,當引數列表不同時就可改變其返回型別
package alltest;
public class OverLoadTest {
public void m1(int x){}
public int m1(int x,int y){return 12;}
// public String m1(int x){return "12";} //error!Duplicate method m1(int)
//in type OverLoadTest public String m1(int x,int y,
int z){return "abc";}
public int m1(String x,int y){return 12;};

}

當引數列表不同時,能達到區分過載時,就可以改變方法的返回型別