慕粉2218014479
2016-11-26 00:28
Dog dog=new Dog();
Animal animal=dog;
Dog dog2=(Dog)animal;
请问第二行每一个代表什么?怎么理解?为什么第二行不是Animal animal=Dog;第三行为什么不是Dog dog2=(Dog)Animal?第三行的animal是哪里来的??
这三行代码可以类比c语言:
float dog = 0; double animal = dog; float dog2 = (float)animal;
第二行:
Animal 表示类;animal 表示对象;dog 就是第一行生成的对象
Animal animal = Dog 类比c语言就成了 double animal=float,变量赋值只能是值,不能赋值成变量类型吧
第三行:
(Dog)animal 表示强制转换,转换肯定是针对对象的,而不是类;animal就是第二行生成的对象
Dog dog2=(Dog)Animal 类比c语言就成了 float dog2=(float) double,强制转换只针对变量
以上解答为自一个非计算机专业新人的粗浅理解,如有错误,请大神轻拍
腻害,幕友
如梦初醒!
兵教兵也这么厉害,都快赶上老师了!
Java入门第二季 升级版
530562 学习 · 6091 问题
相似问题