引用类型转换只能作用于父类与子类之间吗?
Dog dog = new Dog(); //申明了一个狗类的对象,叫“dog”
Animal animal = dog; //然后用动物类的引用 “animal”来接收这个dog,这种行为就是自动类型转换。
Dog dog2 = (Dog) animal; //此刻,你又想把刚才的animal转换回狗类,这中行为就是强制类型转换。
//但是,你突然脑洞大开,你想把刚才的animal转换成猫类
Cat cat = (Cat) animal; //这样做就不被允许了,因为animal这个引用,一开始接收的是一个狗类型的对象,你现在想把狗类型的对象转换成猫类型,这就绝对不可以了。
所以,强制转换的前提是,这个被转换的对象它本身就是来源于这个类型。
父类可以引用子类,而子类不可以引用父类。