开发者社区> 问答> 正文

java关于引用数据类型 强制转换的问题

class TestDemo7{
public static void main(String[] args) {
Animal a=new Dog("旺财",2);
System.out.println("名字:"+a.getName());
System.out.println("年龄:"+a.getAge());
a.eat();
Dog dog=(Dog) a;// 强转为Dog类型
dog.zuanHuoQuan();
System.out.println("_______________________________");
    a=new Cat("咪咪",3);//**此句有疑问**
    System.out.println("名字:"+a.getName());
    System.out.println("年龄:"+a.getAge());
    a.eat();
}
}

变量a已经被转换为 Dog类型在创建Cat对象时 为何还是Animal类型?

展开
收起
蛮大人123 2016-05-27 14:47:16 2101 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    首先,你这句Animal a=new Dog("旺财",2);,获取到的a是Animal类型,
    然后你进行Dog dog=(Dog) a;// 强转为Dog类型这句代码,只是说将a内容赋值给Dog类型的对象dog,a依旧是Animal对象啊
    最后a=new Cat("咪咪",3);这句代码,是给a重新赋值,但是,a依旧是Animal对象啊,只是内容发生变化了而已

    2019-07-17 19:17:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载