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类型?
首先,你这句Animal a=new Dog("旺财",2);
,获取到的a是Animal
类型,
然后你进行Dog dog=(Dog) a;
// 强转为Dog类型这句代码,只是说将a内容赋值给Dog类型的对象dog,a依旧是Animal
对象啊
最后a=new Cat("咪咪",3);
这句代码,是给a重新赋值,但是,a依旧是Animal
对象啊,只是内容发生变化了而已
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。