簡體   English   中英

是否可以重寫Java中通用類的方法?

[英]Is it possible to override a method of a generic class in Java?

我知道在C ++中沒有虛擬模板函數之類的東西。 這是因為我們需要在編譯時知道VTBL的條目,並且每種模板類型都是單獨編譯的。

但是,在Java中,我理解泛型僅被編譯一次,因此可以啟用泛型類的重寫方法。 這是真的?

如果是這樣,此設計選擇是否可行?

Java沒有模板類。 相反,它具有泛型,泛型是常規Java類,在編譯時具有附加的類型信息,使編譯器可以執行類型安全檢查。 一旦完成這些檢查,就將“擦除”有關泛型類型的信息,並且已編譯的類將與其他任何類一樣。

可以在子類中重寫任何非最終,非私有,非靜態方法,無論該方法是否通用。 這項工作是因為類型實際上在每種情況下都是引用 更改類型時,您只是在更改引用的類型。

順便說一句,所有非靜態方法在Java中都是“虛擬”的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM