<input id="dlorj"></input>
      <acronym id="dlorj"><form id="dlorj"></form></acronym>

      千鋒學堂Java培訓之泛型繼承原理與用法詳解

      2019-07-31 15:40:20 2650瀏覽

      今天千鋒扣丁學堂Java培訓老師給大家分享一篇關于Java泛型繼承原理與用法詳解,結合實例形式分析了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培訓之泛型繼承原理與用法詳解的全部內容,希望本文所述對大家java程序設計有所幫助,想要了解更多關于Java方面內容的小伙伴,請關注扣丁學堂Java培訓官網、微信等平臺,扣丁學堂IT職業在線學習教育平臺為您提供權威的Java開發視頻,Java培訓后的前景無限,行業薪資和未來的發展會越來越好的,扣丁學堂老師精心推出的Java視頻教程定能讓你快速掌握Java從入門到精通開發實戰技能。扣丁學堂Java技術交流群:850353792。


                                JavaEE/微服務/源碼解析/分布式/企業級架構【VIP體驗課】


           【關注微信公眾號獲取更多學習資料】        【掃碼進入JavaEE/微服務VIP免費公開課】  



      查看更多關于“Java開發資訊”的相關文章>>

      標簽: Java培訓 Java視頻教程 Java多線程 Java面試題 Java學習視頻 springBoot項目
      微信
      微博
      15311698296

      全國免費咨詢熱線

      郵箱:codingke@1000phone.com

      官方群:148715490

      北京千鋒互聯科技有限公司版權所有   北京市海淀區寶盛北里西區28號天豐利商場4層
      京ICP備12003911號-6   Copyright ? 2013 - 2019
      返回頂部 返回頂部
      500福利导航第一福利导