黑马程序员技术交流社区

标题: 如果A是B的子类型,请问A[]是不是B[]的子类型,如果G是个集 [打印本页]

作者: 马胜平    时间: 2012-2-28 18:45
标题: 如果A是B的子类型,请问A[]是不是B[]的子类型,如果G是个集
如果A是B的子类型,请问A[]是不是B[]的子类型,如果G是个集合类,那么G<A>是不是G<B>的子类型。
作者: 房宝彬    时间: 2012-2-28 19:00
在定义泛型的时候呢,就表示该集合只能接受定义在泛型里的类型,..

G<A>是G<b>的子类型, 因为A 和B 是继承关系.  当你在泛型里 定义父类B的话,那么只能使用到B类的方法,不能使用A的特有方法,如果泛型里定义的是子类A的话,那么就既可以使用B父类,也可以使用A的特有方法.
作者: 雷楚光    时间: 2012-2-28 19:54
A是B的子类型。
那么关于A[]和B[],他们都是数组只能说A[]中的单个元素是B[]的单个元素的子类型。
G<A>和G<B>是一个类。
作者: 房宝彬    时间: 2012-2-28 22:23
我刚刚又仔细的看了一下,,

答案应该 都不是,,

举个例子.两间一样的房子, 一间住着爸爸, 一间住着儿子, 房子和房子没关系.

作者: xieguanxiong    时间: 2012-3-3 11:08
我感觉不是,因为集合和集合之间没有父子类型之说吧
作者: 李晓俊老师    时间: 2012-3-3 11:31
ArrayList<Object>和ArrayList<Person>你觉得是父类与子类的关系么,
不是吧,它只是功能上的区别,能装Person的不一定能装Object啊,就像是两个程序员A和B,,A会java和c++,
B只会java,B会的A都会,但是A会的B不一定会啊,,只是功能上的差别,
如果B是A的子类的话,那A会的B肯定都会啊,但是继承关系不只是功能上的差异,属性上都会继承过来




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2