摘要:定義具有一個或多個類型變量的類,稱之為泛型類。泛型類的繼承創(chuàng)建對象的兩種方式錯誤方式錯誤原因繼承了泛型類,但并不是泛型類,所以不能這樣創(chuàng)建對象。同樣是泛型類,它的父類也是泛型類,它傳遞的是常量。
泛型類
public class A{ //在成員變量上使用泛型 private T t; public A() {} //構(gòu)造參數(shù)類型上使用泛型 public A(T t) { this.t = t; } //方法返回值上使用泛型 public T getT() { return t; } //方法的參數(shù)上使用泛型 //這是泛型類的方法,而不是泛型方法 public void setT(T t) { this.t = t; } //方法的返回值和參數(shù)類型上使用泛型 public T foo(T t) { return t; } public void foo2() { //T t = ....; //局部變量的引用類型上使用泛型 //new T(); //不可以這樣使用 } public void foo3() { //在創(chuàng)建泛型類對象時,即為類型變量賦值,這里將T賦值為String類型 A a = new A (); //將T賦值為Integer類型 A a1 = new A (); } }
A是一個泛型類,T它是一個變量,需要賦類型值,如果有多個類型變量,就用逗號分隔,比如 Jdk 的 Map 接口:interface Map
定義:具有一個或多個類型變量的類,稱之為泛型類。
泛型類是一個存在類型變量的類,存在可變的因素,所以說是一個不完整的類。那么當(dāng)子類去繼承的時候,把里面的類型變量賦予了類型,那么這個類就完整了,就可以使用了。
public class B{} class BB extends B {}
創(chuàng)建BB對象的兩種方式
B
BB b = new BB()
錯誤方式
BB
錯誤原因:BB 繼承了泛型類 B,但 BB 并不是泛型類,所以不能這樣創(chuàng)建對象。
public class C{} class CC extends C {} class CCC extends C {}
創(chuàng)建CC對象
C
C
泛型引用和創(chuàng)建,兩端給出的泛型變量必須相同(等號前后的泛型類型應(yīng)該保持一致),否則會報錯。
CC是泛型類,它的父類也泛型類,它可以給父類傳遞類型常量,也可以傳遞變量,這里傳遞的是變量。
CCC同樣是泛型類,它的父類也是泛型類,它傳遞的是常量。
public class D{ private T bean; public void setBean(T bean) { this.bean = bean; } } class DD extends D { /** * 子類重寫父類方法,參數(shù)類型必須是E,因為子類在定義 * 已經(jīng)把類型E賦給了父類。 */ @Override public void setBean(E o) { //TODO } } class DDD extends D { //子類定義時已經(jīng)把類型String賦給了父類,所以方法重寫時類型是String public void setBean(String str) { //TODO } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/73410.html
摘要:泛型之上界下界通配符本教程是為編寫的。這是在使用泛型編程時一個常見的誤解,也是一個需要學(xué)習(xí)的重要概念。通配符使用指南學(xué)習(xí)使用泛型編程時,更令人困惑的一個方面是確定何時使用上限有界通配符以及何時使用下限有界通配符。 Java 泛型之上界下界通配符 本Java教程是為JDK 8編寫的。本頁描述的示例和實踐沒有利用后續(xù)版本中引入的改進(jìn)。 泛型,繼承和子類 如你所知,只要類型兼容,就可以將一種...
摘要:總結(jié)泛型的類型必須是引用類型,不能是基本類型,泛型的個數(shù)可以有多個,可以使用對創(chuàng)建對象時的泛型類型以及方法參數(shù)類型進(jìn)行限制,如使用關(guān)鍵字和對泛型的具體類型進(jìn)行向下限制或向上限制,最后一點,可以聲明泛型數(shù)組,但是不能創(chuàng)建泛型數(shù)組的實例。 自從 JDK 1.5 提供了泛型概念,泛型使得開發(fā)者可以定義較為安全的類型,不至于強(qiáng)制類型轉(zhuǎn)化時出現(xiàn)類型轉(zhuǎn)化異常,在沒有反省之前,可以通過 Object...
摘要:簡述大家在平時的工作學(xué)習(xí)中肯定會見過不少如下的語句我們都知道上面的代碼時關(guān)于泛型的那么這兩個不同的寫法都有什么區(qū)別呢首先說到的泛型我們必須要提到的是泛型的類型擦除機(jī)制中的泛型基本上都是在編譯器這個層次來實現(xiàn)的在生成的字節(jié)代碼中是不包含泛型中 簡述 大家在平時的工作學(xué)習(xí)中, 肯定會見過不少如下的語句: List 就表示了泛型參數(shù)是某個類型, 只不過我們并不知道它的具體類型時什么.List...
閱讀 2605·2021-11-25 09:43
閱讀 2765·2021-11-16 11:50
閱讀 3382·2021-10-09 09:44
閱讀 3317·2021-09-26 09:55
閱讀 2908·2019-08-30 13:50
閱讀 1105·2019-08-29 13:24
閱讀 2152·2019-08-26 11:44
閱讀 2921·2019-08-26 11:37