一区二区三区精品视频-一区二区三区国产美女在线播放-一区二区三区福利视频-一区二区三区福利-毛片大全免费看-毛片大片免费看

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

當(dāng)前位置:首頁(yè)  >  IT問(wèn)答庫(kù)  >  Java基礎(chǔ)知識(shí)

Java泛型繼承原理與用法

發(fā)布:Java培訓(xùn) 2022-01-20 15:16

Java泛型繼承原理與用法

推薦答案

      當(dāng)創(chuàng)建了帶泛型聲明的接口、父類(lèi)之后,可以為該接口創(chuàng)建實(shí)現(xiàn)類(lèi),或從該父類(lèi)來(lái)派生子類(lèi),但值得指出的是,當(dāng)使用這些接口、父類(lèi)時(shí)不能再包含類(lèi)型形參。

      如果使用泛型類(lèi)時(shí)沒(méi)有傳入實(shí)際的類(lèi)型參數(shù),Java編譯器可能發(fā)出警告:使用了未經(jīng)檢查或不安全的操作——這就是泛型檢查的警告。

      實(shí)戰(zhàn)——傳入實(shí)際的類(lèi)型參數(shù)

      public class A1 extends Apple<String> {

      // 正確重寫(xiě)了父類(lèi)的方法,返回值

      // 與父類(lèi)Apple<String>的返回值完全相同

      public String getInfo() {

      return "子類(lèi)" + super.getInfo();

      }

      /*

      // 下面方法是錯(cuò)誤的,重寫(xiě)父類(lèi)方法時(shí)返回值類(lèi)型不一致

      public Object getInfo()

      {

      return "子類(lèi)";

      }

      */

      }

      實(shí)戰(zhàn)——沒(méi)傳入實(shí)際的類(lèi)型參數(shù)

      public class A2 extends Apple {

      // 重寫(xiě)父類(lèi)的方法

      public String getInfo() {

      // super.getInfo()方法返回值是Object類(lèi)型,

      // 所以加toString()才返回String類(lèi)型

      return super.getInfo().toString();

      }

      }

      并不存在泛型類(lèi)

      1、點(diǎn)睛

      雖然可以把ArrayList<String>類(lèi)當(dāng)成ArrayList的子類(lèi),事實(shí)上ArrayList<String>類(lèi)也確實(shí)是一種特殊的ArrayList類(lèi),這個(gè)ArrayList<String>對(duì)象只能添加String對(duì)象作為集合元素。但實(shí)際上,系統(tǒng)并沒(méi)有為ArrayList<String>生成新的class文件,而且也不會(huì)把ArrayList<String>當(dāng)成新類(lèi)來(lái)處理。

      實(shí)際上,泛型對(duì)其所有可能的類(lèi)型參數(shù),都具有同樣的行為,從而可以把相同的類(lèi)被當(dāng)成許多不同的類(lèi)來(lái)處理。與此完全一致的是,類(lèi)的靜態(tài)變量和方法也在所有的實(shí)例間共享,所以在靜態(tài)方法、靜態(tài)初始化、或者靜態(tài)變量的聲明和初始化中不允許使用類(lèi)型形參。

      系統(tǒng)中并不會(huì)真正生成泛型類(lèi),所以instanceof運(yùn)算符后不能使用泛型類(lèi)。

      2、實(shí)戰(zhàn)

      public class R<T>

      {

      // 下面代碼錯(cuò)誤,不能在靜態(tài)變量聲明中使用類(lèi)型形參

      // static T info;

      T age;

      public void foo(T msg){}

      // 下面代碼錯(cuò)誤,不能在靜態(tài)方法聲明中使用類(lèi)型形參

      // public static void bar(T msg){}

      }

      以上就是關(guān)于Java泛型繼承原理與用法詳解的全部?jī)?nèi)容。

最新問(wèn)答資訊

01 unity用什么編程語(yǔ)言?unity學(xué)習(xí)難度大嗎

學(xué)習(xí) unity 語(yǔ)言
6020 人關(guān)注

02 python容易學(xué)嗎?學(xué)好python有什么好處?

學(xué)習(xí) python 工作 培訓(xùn)
5389 人關(guān)注

03 html是什么語(yǔ)言?html學(xué)習(xí)難嗎?

學(xué)習(xí) html 語(yǔ)言 可以
5062 人關(guān)注

04 c語(yǔ)言難學(xué)嗎?c語(yǔ)言學(xué)好要多久?

語(yǔ)言 技術(shù) 學(xué)習(xí)
4733 人關(guān)注

06 學(xué)好平面設(shè)計(jì)要多久?報(bào)速成班靠譜嗎?

平面 設(shè)計(jì) 學(xué)習(xí) 時(shí)間
4238 人關(guān)注

相關(guān)問(wèn)題

Java培訓(xùn)班的課程一般都學(xué)習(xí)什么內(nèi)容

首先是Java技術(shù)的核心和基礎(chǔ)JavaSE,這一階段會(huì)接觸到Java基礎(chǔ)語(yǔ)...

學(xué)習(xí)Java有哪些技巧嗎

java作為最經(jīng)典的編程語(yǔ)言之一受到大家的喜愛(ài),不止你我,很多人...

java程序員常用到的技術(shù)有哪些

操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)這些基礎(chǔ)知識(shí),工作之后基本都忘的差不多了...

int和integer有哪些區(qū)別?

JVM模型的介紹二

JVM模型的介紹二,接著上一篇我們繼續(xù)來(lái)分享,棧之本地方法棧。 ...

JVM模型的介紹一

Java培訓(xùn)班教程系列分享JVM模型的介紹一,Java內(nèi)存分配:JVM定義...

測(cè)一測(cè)
你知道多少I(mǎi)T梗

主站蜘蛛池模板: 南通市| 伊川县| 沾化县| 九龙县| 科尔| 东乡族自治县| 广昌县| 永平县| 大邑县| 秦皇岛市| 遵义市| 瓦房店市| 建昌县| 伊金霍洛旗| 浠水县| 遵义市| 正宁县| 侯马市| 乌拉特后旗| 获嘉县| 阳东县| 普定县| 钟祥市| 慈利县| 平湖市| 漠河县| 通渭县| 丹寨县| 绵阳市| 永济市| 曲沃县| 唐河县| 宝坻区| 宣恩县| 马边| 禹州市| 湘潭市| 昭平县| 新闻| 兴隆县| 五原县|