Java中extends一定是代表繼承嗎?
Java中繼承用哪個(gè)關(guān)鍵字表示?extends!沒(méi)錯(cuò),這是Java小學(xué)生都知道的常識(shí)??墒莈xtends有沒(méi)有別的含義呢?它在任何情況下都一定代表繼承嗎?不一定。
我們知道Collections類有靜態(tài)方法sort,用于List的排序,該方法要求List中的元素類必須實(shí)現(xiàn)Comparable接口。我們來(lái)看看源碼:
... @SuppressWarnings("unchecked") public static <T extends Comparable<? super T>> void sort(List<T> list) { list.sort(null); } ...
顯然,該方法的入?yún)⑹且粋€(gè)List,List的泛型為T,可是這里寫的是“T extends Comparable”(后面的“<? super T>”我們暫時(shí)不考慮),按照以往的思維,也就是說(shuō)T這個(gè)class必須繼承自Comparable。這和我們所熟知的Collections.sort()是有出入的。所以我們必須熟悉這樣一個(gè)概念:
- 在Java的泛型中,extends關(guān)鍵字表示“繼承或?qū)崿F(xiàn)”。
也就是說(shuō),泛型的extends表示“是一個(gè)”的含義。那么為什么Java不新建一個(gè)“is”關(guān)鍵字表示這樣的含義呢?要知道新增一個(gè)關(guān)鍵字的代價(jià)是很大的。
我們?cè)賮?lái)看一下泛型中的extends和super的區(qū)別:
- <? extends T>限定參數(shù)類型的上界:參數(shù)類型必須是T或T的子類型
- <? super T>限定參數(shù)類型的下界:參數(shù)類型必須是T或T的超類型
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
常用數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序及JDBC URL分享
這篇文章主要介紹了常用數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序及 JDBC URL,需要的朋友可以看下2014-01-01SpringBoot整合MOTT動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)連接信息并連接MQTT服務(wù)端
MQTT是一種輕量級(jí)的消息傳輸協(xié)議(Message Queuing Telemetry Transport),旨在實(shí)現(xiàn)設(shè)備之間的低帶寬和高延遲的通信,本文給大家介紹了SpringBoot整合MOTT動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)連接信息并連接MQTT服務(wù)端,需要的朋友可以參考下2024-04-04java datetime數(shù)據(jù)類型去掉時(shí)分秒的案例詳解
在Java中,如果我們想要表示一個(gè)日期而不包括時(shí)間(時(shí)分秒),我們通常會(huì)使用java.time包中的LocalDate類,這篇文章主要介紹了java datetime數(shù)據(jù)類型去掉時(shí)分秒,需要的朋友可以參考下2024-06-06解決@Api注解不展示controller內(nèi)容的問(wèn)題
這篇文章主要介紹了解決@Api注解不展示controller內(nèi)容的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01SpringBoot前后端分離解決跨域問(wèn)題的3種解決方案總結(jié)
前后端分離大勢(shì)所趨,跨域問(wèn)題更是老生常談,下面這篇文章主要給大家介紹了SpringBoot前后端分離解決跨域問(wèn)題的3種解決方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05Java實(shí)現(xiàn)儲(chǔ)存對(duì)象并按對(duì)象某屬性排序的幾種方法示例
這篇文章主要介紹了Java實(shí)現(xiàn)儲(chǔ)存對(duì)象并按對(duì)象某屬性排序的幾種方法,結(jié)合實(shí)例形式詳細(xì)分析了Java儲(chǔ)存對(duì)象并按對(duì)象某屬性排序的具體實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05使用Java實(shí)現(xiàn)5種負(fù)載均衡算法實(shí)例
負(fù)載均衡指由多臺(tái)服務(wù)器以對(duì)稱的方式組成一個(gè)服務(wù)器集合,每臺(tái)服務(wù)器都具有等價(jià)的地位,都可以單獨(dú)對(duì)外提供服務(wù)而無(wú)須其他服務(wù)器的輔助,這篇文章主要給大家介紹了關(guān)于使用Java實(shí)現(xiàn)5種負(fù)載均衡算法的相關(guān)資料,需要的朋友可以參考下2021-09-09