public class a
//構造引數型別上使用泛型
public a(t t)
//方法返回值上使用泛型
public t gett()
//方法的引數上使用泛型
//這是泛型類的方法,而不是泛型方法
public void sett(t t)
//方法的返回值和引數型別上使用泛型
public t foo(t t)
public void foo2()
public void foo3()
}
a是乙個泛型類,t它是乙個變數,需要賦型別值,如果有多個型別變數,就用逗號分隔,比如 jdk 的 map 介面:inte***ce map{}
。
定義:具有乙個或多個型別變數的類,稱之為泛型類。
泛型類是乙個存在型別變數的類,存在可變的因素,所以說是乙個不完整的類。那麼當子類去繼承的時候,把裡面的型別變數賦予了型別,那麼這個類就完整了,就可以使用了。
public class b{}
class bb extends b{}
建立bb物件的兩種方式
錯誤方式
錯誤原因:bb 繼承了泛型類 b,但 bb 並不是泛型類,所以不能這樣建立物件。
public class c{}
class ccextends c{}
class cccextends c{}
建立cc物件
泛型引用和建立,兩端給出的泛型變數必須相同(等號前後的泛型型別應該保持一致),否則會報錯。
cc是泛型類,它的父類也泛型類,它可以給父類傳遞型別常量,也可以傳遞變數,這裡傳遞的是變數。
ccc同樣是泛型類,它的父類也是泛型類,它傳遞的是常量。
public class d
}class ddextends d
}class dddextends d
}
泛型之泛型類
public class a 構造引數型別上使用泛型 public a t t 方法返回值上使用泛型 public t gett 方法的引數上使用泛型 這是泛型類的方法,而不是泛型方法 public void sett t t 方法的返回值和引數型別上使用泛型 public t foo t t pu...
泛型之泛型類
public class a 構造引數型別上使用泛型 public a t t 方法返回值上使用泛型 public t gett 方法的引數上使用泛型 這是泛型類的方法,而不是泛型方法 public void sett t t 方法的返回值和引數型別上使用泛型 public t foo t t pu...
泛型 泛型類 泛型方法 泛型擦除
1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...