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

java中泛型的继承

2016-01-02 11:51 316 查看
现在有如下两个类:

public class GenericFather<T> {

public void (T t) {
System.out.println(t);
}
}

public class GenericSon extends Generic<T> {
}


如果按照这样的方式继承的话,编译器将报错:T cannot be resolved to a type

不存在T这个类型,所以说,如果父类具有泛型的话,子类继承父类一定要传一个实际的参数,所以可以这样继承:

public class GenericSon<T> extends GenericFather {
}


这种方式继承是可以得,因为当子类new出一个对象时,将会传递一个实际的类型给子类的泛型T,这个时候再用子类的T去初始化父类的T,这个时候父类的泛型T就是一个实际的类型了。

另外如果继承这样使用:

public class GenericSon extends GenericFather {

}

没有指定GenericFather的泛型,那么GenericFather中使用了泛型的方法将会变成接收Object方法

总结:

定义了泛型类可不是用泛型,如果不使用那么里面所有使用泛型的地方默使用Object,继承泛型的时候要给父类的泛型T指定一个存在的类型,这个类型可以是一个已经定义过的类,也可以是子类的泛型.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: