如果我有在Java A和B兩個類是A extends
乙如果我已經在這個方法:java類繼承與不同的返回值的方法
int getmax(){};
和BI有此方法:
INTEGER getmax(){};
將B中的方法被覆蓋或過載? 並且在這種情況下是A的B亞型?
如果我有在Java A和B兩個類是A extends
乙如果我已經在這個方法:java類繼承與不同的返回值的方法
int getmax(){};
和BI有此方法:
INTEGER getmax(){};
將B中的方法被覆蓋或過載? 並且在這種情況下是A的B亞型?
您無法重寫某個方法並更改其返回值。你
也可以聲明具有相同名稱但不同的參數,但不是相同的名稱,參數相同,但不同的返回值的方法。
在最後一種情況下,編譯器將不知道使用哪種方法。
「覆蓋方法的參數名稱,數量和類型與返回類型一樣,覆蓋方法也可以返回覆蓋方法返回的類型的子類型,該子類型被調用一個協變的返回類型「。 (http://docs.oracle.com/javase/tutorial/java/IandI/override.html)
所以當我調用方法getmax()哪一個將被調用,什麼是返回值?! – flashdisk
你甚至不能編譯這段代碼,查看Arnaud Potier的答案。 – Smutje