自定义类之间可以转换类型吗?

来源:2-9 编程练习

慕大白0_0

2020-11-10 18:41:30

图1:

http://img.mukewang.com/climg/5faa6a40093b79a404290210.jpg

图2:

http://img.mukewang.com/climg/5faa6a4009d26be804360136.jpg



图1是按照老师视频重写equals,其中有些疑问


疑问1:

重写equals方法, 参数类型是Object类型

那为什么在test里调用此方法,导入Fruits对象也可以,Fruits不是只是Object的子类吗?


疑问2:

如果Fruits是Object的子类,那么在重写方法里有一条强转语句,就是把Object类强转为Fruits,那是不是说明父类可以强转为子类?


疑问3:如果父类可以强转子类成立,我测试了下(见图2),用Fruits对象强转为子类Banana,为什么又报错了呢?

在这里输入代码,可通过选择【代码语言】突出显示

写回答

1回答

好帮手慕阿园

2020-11-10

同学你好

1,参数是Object类,Fruits是Object类的子类,所以这里参数传入Object的子类即可

2,是的,同学的理解是正确的,父类是可以强转为子类的,也称之为向下转型,也就是子类引用指向父类实例

3,如果Banana Fruits的子类,是可以进行强制转换的;并且同学截图老师看不清楚,从同学的截图中并没有看出有报错;如下

http://img.mukewang.com/climg/5faa730f0989c3ec05550100.jpg


祝学习愉快

0

0 学习 · 16556 问题

查看课程