泛型就是將具體的型別引數化,將型別定義成引數形式,等到使用的時候再傳入具體的型別。泛型可以使用在類、介面和方法中。
泛型的優勢:
①編譯時檢查**的型別安全,從而減少出錯的概率;
②消除了強制型別轉換,沒有泛型的返回值,我們可以認為是乙個object,在使用時需要對其進行強制轉換,這樣就可能會出現classcastexception(型別轉換異常)。
定義格式:修飾符 class 類名<泛型變數》。
/**
* @description: 動物類
* @author: murphy
* @date: 2020/7/37:41 上午
*/public
class
animal
}/** * @description: 狗類
* @author: murphy
* @date: 2020/7/37:43 上午
*/public
class
dog/**
* @description: 測試類
* @author: murphy
* @date: 2020/7/37:44 上午
*/public
class
demo
}
泛型類在建立物件時確定泛型。
定義格式:修飾符 《泛型變數》 返回值型別 方法名(引數) 。
public
void
method
(t t)
泛型方法在呼叫方法時確定泛型。
定義格式:修飾符 inte***ce 介面名 《泛型變數》 。
/**
* @description: 商品介面
* @author: murphy
* @date: 2020/7/38:10 上午
*/public
inte***ce
goodsinte***ce
定義類時確定泛型
/** * @description: 商品介面的實現類
* @author: murphy
* @date: 2020/7/38:12 上午
*/public
class
goods
implements
goodsinte***ce
}建立物件時確定泛型的型別
/** * @description: 商品介面的實現類
* @author: murphy
* @date: 2020/7/38:12 上午
*/public
class
goods
implements
goodsinte***ce
}/** * @description: 測試類
* @author: murphy
* @date: 2020/7/37:44 上午
*/public
class
demo
}
e(element):元素;
t(type):型別;
k(key):鍵值;
v(value):value值;
?:泛型萬用字元,代表一切型別,能接受一切但不能修改。
泛型的上限:
<? extends string>:只能接收string類及其子類。
泛型的下限:
<? super string>:只能接收string類及其父類。
C 基礎知識(八)泛型
泛型的好處很多,包括復用性 可供多個型別使用而不用每個型別都定義一次 型別安全 不合法的型別報錯 高效率 減少裝箱和拆箱 舉例 假設我們有乙個父類animal,所有動物繼承這個類,現在需要做乙個比較動物重量的方法,如果不用泛型,則我們隊沒類動物都需要過載一次比較的方法 public class an...
C 基礎知識 泛型程式設計 模板
類模板首先思考乙個問題 如何實現乙個通用的交換函式呢?這裡很多人可能會想到函式過載,沒錯,函式過載可以實現不同型別資料的交換,但是也有很大的缺陷 過載的函式僅僅只是型別不同,的復用率比較低,只要有新型別出現時,就需要增加對應的函式 的可維護性比較低,乙個出錯可能所有的過載均出錯 那能否給編譯器乙個模...
泛型知識點整理
泛型好處 1 將執行時期的問題classcastexception轉到了編譯時期 2 避免了強制轉換的麻煩 什麼時候用 當操作的引用資料型別不確定的時候,使用 泛型擦除 執行時,會將泛型去掉,生產的class檔案中是不帶泛型的,這個稱為泛型的擦除。泛型補償 執行時,通過獲取元素的型別進行轉換動作,不...