为什么dog就可以强制类型转换,而cat就不行?不都是动物的子类么?
因为你没有创建cat类型的对象你创建cat对象就可以强制转换
Cat cat= new Cat();创建这个就可以转换了;
能不能转换请查看instanceof....你明白了这个关键字,就明白原因了。
他们都是动物 所以猫狗都阔以转化为动物 但猫狗之间不能转化 物种不同
【对象dog】转换成【对象animal】,两个对象的地址是一致的“Dog@……”
Cat类的对象,运行时引用的是应该是“Cat@……”的地址
他是将dog对象转换为父类对象animal,子类可以转换为父类,初始对象是dog,dog跟cat类是同级别的,所以不能转换为cat类