1. 程式人生 > 其它 >自定義泛型1

自定義泛型1

package com.wangg;

import com.sun.org.apache.xpath.internal.operations.String;

/*
GenericTest 是一個普通的類
GenericTest<E>是一個泛型類
<>裡面就是一個引數型別,但是這個型別是什麼呢?這個型別現在是不確定的,相當於一個佔位
但是現在確定的是這個型別一定是一個引用的資料型別,而不是基本資料型別
*/
public class GenericTest<E>{
int age;
String name;
E sex;
public void a(E n){

}
public void b(E[] m){

}



}
class Test{
public static void main(String[] args) {
//GenericTest進行例項化
//1.例項化的時候不指定泛型:如果例項化的時候不明確的指定類的泛型,那麼認為此泛型為Object型別
GenericTest g1 = new GenericTest();
g1.a(6);
g1.a("王剛");
g1.b(new Integer[]{1,23,4});
//2.例項化的時候明確的指定泛型--->推薦
GenericTest<java.lang.String> g2 = new GenericTest<>();
g2.sex="男";
g2.a("fasdfajsldf王剛");
g2.b(new java.lang.String[]{"w","aw","wa"});


}

}
class sasdf extends GenericTest<Integer>{

}
class Dome{
public static void main(String[] args) {
//指定父類泛型,那麼子類就不需要在指定泛型了,可以直接使用
sasdf a = new sasdf();
a.a(18);
}


}
class sasdf2<E> extends GenericTest<E>{
class Dome02{
public void main(String[] args) {

}
}
}

繼承問題

如果繼承前指定泛型了,那麼使用的時候就不需要指定

如果繼承前沒有指定那麼子類也會變成一個泛型,建立物件的時候在定義