为了账号安全,请及时绑定邮箱和手机立即绑定

这个数组里的元素为什么这么写,在哪节课学到过?是什么意思?能不能写的容易理解些?

car [ ] carForRent={new passengerCar(1,"奥迪A4",500,4),new passengerCar(2,"马自达6",400,4),

                                          new pickUp(3,"皮卡雪6",450,4,2),new passengerCar(4," 金龙 ",800,20),

                                          new trunk(5,"松花江",400,4),new trunk(6,"依维柯",1000,20)};


正在回答

2 回答

这个就是利用了Java继承,多态的概念,因为数组里不同的车的Java类都继承于Car类,所以可以统一用一个父类Car的数组去接收,不用再新建不同的对象的数组。

0 回复 有任何疑惑可以回复我~
#1

慕数据3565510 提问者

数组定义是,类型 名字[],这里怎么用类名了?在本课程哪里讲到过可以这么用?
2017-05-18 回复 有任何疑惑可以回复我~
#2

慕数据3565510 提问者

如果新建不同的对象的数组,代码要怎么写?能写一下吗,方便我理解
2017-05-18 回复 有任何疑惑可以回复我~
#3

ZaizhanShi 回复 慕数据3565510 提问者

回答一般在晚上,如果有问题可以再找我。我也刚学了才半年。一同进步。
2017-05-18 回复 有任何疑惑可以回复我~
#4

风中摇曳的火焰 回复 慕数据3565510 提问者

你自己也看到了 Car就是类型 并且包含了其他的三种,所以你可以用Car这个大的类型来接受其他三个小类型。
2017-07-15 回复 有任何疑惑可以回复我~
查看1条回复

如果新建不同的对象的数组,代码要怎么写?能写一下吗,方便我理解

0 回复 有任何疑惑可以回复我~
#1

ZaizhanShi

按照你的案例来说,有父类 Car 继承类 PassengerCar , Trunk。如果不用Car类数组 Car[] cars 去接收,除了总类数组 Object[] objects 是无法同时接收 PassengerCar 和 Trunk 两个类的。因为 这两个除了继承于同一个父类Car类只有一种关系就是继承与总类Object类。你只能用两个数组 PassengerCar[] passengerCars 去接收 PassengerCar 类 ,Trunk[] trunks 去接收Trunk类 因为类型不同 你不能用passengerCars 去接收 Trunk类型的对象
2017-05-18 回复 有任何疑惑可以回复我~
#2

慕数据3565510 提问者 回复 ZaizhanShi

你这么说,我明白点了,如果我不理解,只知道这么用,接着往下学会不会在后面慢慢懂了,慢慢学会?
2017-05-18 回复 有任何疑惑可以回复我~
#3

ZaizhanShi 回复 慕数据3565510 提问者

等你慢慢学下去,稍微了解点面对对象的思想,和继承,多态的理解,你就懂了。
2017-05-19 回复 有任何疑惑可以回复我~
#4

ZaizhanShi 回复 慕数据3565510 提问者

你现在只要记住 Object类是所有类的总类,所有对象都能接收,但只能使用Object类的方法,不能使用具体接收对象的内部的扩展方法,父类能接收子类对象,但不能使用子类扩展的方法,并且Object类与父类调用方法时,如果具体对象(子类)重写了这个方法,就会自动去调用具体对象(子类)的同名同参方法
2017-05-19 回复 有任何疑惑可以回复我~
#5

慕数据3565510 提问者 回复 ZaizhanShi

感谢回答,下面这段代码 this.setCarNumber(carNumber);是什么意思?是给封装的CarNumber赋值为carNumber吗? 我记着赋值不是this.CarNumber=carNumber吗?多了一个set还有个括号什么意思啊?
2017-05-19 回复 有任何疑惑可以回复我~
#6

慕数据3565510 提问者 回复 慕数据3565510 提问者

明白了,删掉
2017-05-19 回复 有任何疑惑可以回复我~
#7

慕数据3565510 提问者 回复 ZaizhanShi

如果我通过Scanner输入了new passengerCar(1,"奥迪A4",500,4),中的1,怎么通过1调用500或者4?
2017-05-19 回复 有任何疑惑可以回复我~
#8

ZaizhanShi 回复 慕数据3565510 提问者

setCarNumber(carNumber) 就是赋值carNumber,因为一般设计对象是对象内变量不是公共访问的,而用public方法去赋值获取变量的值,在这个方法的方法体里 就是你说this.carNumber = carNumber
2017-05-19 回复 有任何疑惑可以回复我~
#9

ZaizhanShi 回复 慕数据3565510 提问者

你的new passengerCar(1,"奥迪A4",500,4) ,不是用1 去调用 500 或者4,而是去辨别对象,找出id是1的变量再调用他 500和4的变量或者方法
2017-05-19 回复 有任何疑惑可以回复我~
#10

慕数据3565510 提问者 回复 ZaizhanShi

谢谢明白了
2017-05-20 回复 有任何疑惑可以回复我~
查看7条回复

举报

0/150
提交
取消

这个数组里的元素为什么这么写,在哪节课学到过?是什么意思?能不能写的容易理解些?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信