java泛型-implements和extends
阿新 • • 發佈:2019-02-04
簡介
JavaSE當中之前的理解是:implements是實現介面,extends是繼承類,但是在泛型中只能使用extends,不過只能使用extends並不意味著只能繼承類,泛型使用extends後邊既可以接父類又可以跟介面,最終實現的效果跟繼承類或者實現介面是一樣的。
泛型例項
public <T extends List<?>> void test(T[] mote) {
T t = null;
for (Object ts : t) {
System.out.println(ts);
}
}
首先,很明顯上述程式碼不會報錯,但是這裡的關注點是泛型的使用。
extends後邊跟的是List,而List是一個介面。
public <T extends ArrayList<?>> void test(T[] mote) {
T t = null;
for (Object ts : t) {
System.out.println(ts);
}
}
extends後邊跟的是ArrayList,而ArrayList是一個實現類。
這兩個例項在語法上是沒有錯誤的(不要在意null)