在本書中,我用它來爲新的Oracle認證專家準備 - 的Java SE7程序員考試,在與方法重載交易的部分,我所遇到的以下內容:方法重寫:相同的參數列表類型(或COMPATIBLE類型)?
覆蓋方法應該有的作爲基礎版本的相同參數列表類型(或 兼容類型)。
「兼容類型」是什麼意思?我的意思是,只要參數列表類型不同,就會超載,而不是覆蓋。
我只能想到重寫一個採用可變參數的方法,一個採用相同類型的數組。編譯器發出警告,但仍編譯。
兼容類型是什麼意思?這是書中的錯誤嗎?
在本書中,我用它來爲新的Oracle認證專家準備 - 的Java SE7程序員考試,在與方法重載交易的部分,我所遇到的以下內容:方法重寫:相同的參數列表類型(或COMPATIBLE類型)?
覆蓋方法應該有的作爲基礎版本的相同參數列表類型(或 兼容類型)。
「兼容類型」是什麼意思?我的意思是,只要參數列表類型不同,就會超載,而不是覆蓋。
我只能想到重寫一個採用可變參數的方法,一個採用相同類型的數組。編譯器發出警告,但仍編譯。
兼容類型是什麼意思?這是書中的錯誤嗎?
也許它與類型擦除有關。這是有效的Java,它只是給你一個警告:
abstract class Foo {
public abstract void method(List<String> xs);
}
class Bar extends Foo {
@Override
public void method(List xs) {
}
}
原始類型List
與List<String>
兼容。
IMO之間的區別最合理的答案。 http://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html – Sambuca
有趣的一點!沒想到這個:-) –
他們是否指'原始類型的'sub' /'super'類? – nhgrif
可能是他們的意思是'(int a,String b)'和'(String b,int a)' –