泛型的繼承&通配符
泛型不具繼承性,但數據具備繼承性
不可行
可行
解法1.
- 使用泛型
- 弊端:此時可以接受任意數據類型,不能限制在特定類與其子類
```java
public static void method(ArrayList list){
...
}
解法2.
泛型的通配符
- 通配符的關鍵:可以限定類型的範圍
- ? 表示不確定的類型(跟先前用的E)一樣
- 可透過?進行類型限定
- ? extends E : 表示可以傳遞E或者E的所有子類類型
- ?super E: 表示可以傳遞E或E所有的父類類型
- 應用場景:
- 若我們在定義類、方法、接口的時候,如果類型不確定就可以定義泛型類、泛型方法、泛型接口
- 若類型不確定,但能知道之後只能傳遞某個繼承體系中的,就可以使用泛型通配符
public static void method(ArrayList<? extends Ye> list){
...
}