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("无法进行类型转换"); } } }
求解答