千鋒教育-做有情懷、有良心、有品質的職業教育機構

當前位置:首頁  >  IT問答庫  >  Java基礎知識

Java泛型繼承原理與用法

發布:Java培訓 2022-01-20 15:16

Java泛型繼承原理與用法

推薦答案

      當創建了帶泛型聲明的接口、父類之后,可以為該接口創建實現類,或從該父類來派生子類,但值得指出的是,當使用這些接口、父類時不能再包含類型形參。

      如果使用泛型類時沒有傳入實際的類型參數,Java編譯器可能發出警告:使用了未經檢查或不安全的操作——這就是泛型檢查的警告。

      實戰——傳入實際的類型參數

      public class A1 extends Apple<String> {

      // 正確重寫了父類的方法,返回值

      // 與父類Apple<String>的返回值完全相同

      public String getInfo() {

      return "子類" + super.getInfo();

      }

      /*

      // 下面方法是錯誤的,重寫父類方法時返回值類型不一致

      public Object getInfo()

      {

      return "子類";

      }

      */

      }

      實戰——沒傳入實際的類型參數

      public class A2 extends Apple {

      // 重寫父類的方法

      public String getInfo() {

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

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

      return super.getInfo().toString();

      }

      }

      并不存在泛型類

      1、點睛

      雖然可以把ArrayList<String>類當成ArrayList的子類,事實上ArrayList<String>類也確實是一種特殊的ArrayList類,這個ArrayList<String>對象只能添加String對象作為集合元素。但實際上,系統并沒有為ArrayList<String>生成新的class文件,而且也不會把ArrayList<String>當成新類來處理。

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

      系統中并不會真正生成泛型類,所以instanceof運算符后不能使用泛型類。

      2、實戰

      public class R<T>

      {

      // 下面代碼錯誤,不能在靜態變量聲明中使用類型形參

      // static T info;

      T age;

      public void foo(T msg){}

      // 下面代碼錯誤,不能在靜態方法聲明中使用類型形參

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

      }

      以上就是關于Java泛型繼承原理與用法詳解的全部內容。

最新問答資訊

01 unity用什么編程語言?unity學習難度大嗎

學習 unity 語言
6020 人關注

02 python容易學嗎?學好python有什么好處?

學習 python 工作 培訓
5389 人關注

03 html是什么語言?html學習難嗎?

學習 html 語言 可以
5062 人關注

04 c語言難學嗎?c語言學好要多久?

語言 技術 學習
4733 人關注

06 學好平面設計要多久?報速成班靠譜嗎?

平面 設計 學習 時間
4238 人關注

相關問題

計算機前端和后端區別,到底該學哪一個?

互聯網行業的發展速度很快,有關市場上對于it行業的人才需求量越...

java和php的區別是什么?哪一個更難一些?

有很多零基礎的小白想要去學習編程技術,那么可以考慮一下java和...

java與java script的區別有哪些?

相信大多數同學對java、java script都不會陌生,二者都是編程語...

java中什么是繼承?

繼承的特點:只需明確一點,java只支持單繼承,不支持多繼承,但...

java byte取值范圍是什么?

同學您好,java byte取值范圍是什么?針對這個問題可以看看下面的...

javascript和java有什么區別

1)基于對象和面向對象:Java是一種真正的面向對象的語言,即使是...

測一測
你知道多少IT梗

主站蜘蛛池模板: 怡红院美国分院一区二区| 日韩AV在线不卡一区二区三区| 亚洲AV无码一区东京热| 国产丝袜视频一区二区三区| 国产自产V一区二区三区C| 精品亚洲一区二区三区在线观看| 岛国无码av不卡一区二区| 蜜臀AV在线播放一区二区三区| 久久久国产精品无码一区二区三区| 又紧又大又爽精品一区二区| 国产综合一区二区在线观看| 亚洲日本乱码一区二区在线二产线| 99无码人妻一区二区三区免费| 日本v片免费一区二区三区 | 蜜桃视频一区二区三区在线观看 | 日本精品夜色视频一区二区| 成人区人妻精品一区二区不卡视频| 亚洲av综合av一区| 国产成人AV区一区二区三 | 无码aⅴ精品一区二区三区| 亚洲毛片不卡av在线播放一区| 久久久无码一区二区三区| 国产一区二区影院| 99久久精品午夜一区二区| 国产av一区二区精品久久凹凸| 曰韩精品无码一区二区三区| 久久蜜桃精品一区二区三区| 国产亚洲一区二区手机在线观看| 色国产在线视频一区| 日韩精品一区二区亚洲AV观看| 国产av夜夜欢一区二区三区| 中文字幕一区二区三区精彩视频| 日韩精品一区二区午夜成人版| 久久无码人妻一区二区三区午夜| 波多野结衣中文字幕一区| 亚洲一区二区三区四区视频| 国产日韩AV免费无码一区二区 | 无码乱人伦一区二区亚洲一| 日本一区二区三区精品国产 | 精品国产一区二区三区久久| 精品一区二区三区电影|