您的位置:首页 > 编程语言 > Java开发

java泛型深入1

2018-02-14 15:02 148 查看
package Class;

/*

* 泛型父类

* T1定义属性,T2定义方法

*1.若子类全部保留父类泛型,则子类泛型同父类泛型是相同的。

*2.若子类不部保留父类泛型,则子类泛型类型按需而定。

*子类重写的父类方法类型随父类而定。

*子类增加的方法随子类而定

*子类中使用父类的属性随父类而定

*子类中定义的属性随子类而定

*/

public abstract class Father<
T1,T2
> {

T1 age;
public abstract void test(T2 name);


}

//全部保留父类泛型

class c1<
T1,T2
> extends Father<
T1, T2
>{

@Override
public void test(T2 name) {

}


}

//部分保留,此时age是Integer类型

class c2<
T2,A,B
> extends Father<
Integer, T2
>{

@Override
public void test(T2 name) {

}


}

//不保留(具体类型),此时age是Integer类型,name是String类型。

class c3<
A,B
> extends Father<
Integer,String
>{

@Override
public void test(String name) {

}


}

//不保留,此时age和name是类似与Object类型——>即(擦除)

//擦除:对于继承或者实现时未指明类型

class c4<
A,B
> extends Father{

@Override
public void test(Object name) {

}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: