泛型之泛型類

2021-09-12 16:13:10 字數 1050 閱讀 2931

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的引數型別,其...