永发信息网

java 类型接收问题

答案:2  悬赏:70  手机版
解决时间 2021-02-11 15:24
  • 提问者网友:山高云阔
  • 2021-02-11 04:44
java 类型接收问题
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-02-11 05:43
//Apple Orange 都继承自Fruit类,同时Jonathan是Apple的子类
List list = new ArrayList();
//list.add(new Apple());Error
//list.add(new Fruit());Error

List list = new ArrayList();
list.add(new Apple());//可以
list.add(new Fruit());//可以

List list = new ArrayList();
list中为什么不能加入Fruit类和Fruit类的子类呢,原因是这样的
List表示上限是Fruit,下面这样的赋值都是合法的
List list1 = new ArrayList();
List list2 = new ArrayList();
List list3 = new ArrayList();
如果List支持add方法的方法合法的话
list1可以add Fruit和所有Fruit的子类
list2可以add Apple和所有Apple的子类
list3可以add Jonathan和所有Jonathan的子类
这样的话,问题就出现了
List所应该持有的对象是Fruit的子类,而且具体是哪一个
子类还是个未知数,所以加入任何Fruit的子类都会有问题,因为如果add Apple
的话,可能List持有的对象是new ArrayList()
Apple的加入肯定是不行的,如果 如果add Jonathan
的话,可能List持有的对象是new ArrayList()
Jonathan的加入又不合法,所以List list 不能进行add

而List list 表示list持有的对象是Fruit的父类,下限是 Fruit,所以list中add Fruit或Fruit的子类是没有问题的
全部回答
  • 1楼网友:洎扰庸人
  • 2021-02-11 06:17
用int类型接受,规定接受的长度是3个字节不可以吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯