Animal animal = dog 执行后 animal 是基于哪个类型的?为什么 Cat cat = (Cat) animal; 执行后回事false呢?
package com.myjava2.polymorphic;
public class Initial {
public static void main(String[] args) {
Dog dog = new Dog();//dog是Dog类型的实例
Animal animal = dog;//向下类型转换
if(animal instanceof Dog){
Dog dog2 = (Dog)animal;//强制类型转换
}else{
System.out.println("无法进行类型转换");
}
if(animal instanceof Cat){
Cat cat = (Cat) animal;//1.编译是Cat类型 2.运行是Dog类型
}else{
System.out.println("无法进行类型转换");
}
}
}求解答