父类的一个继承类的实例对象被类型转换成Object类,为何这个对象还是原来父类的子类的一个实例。
Pet:父类
Dog:子类
//1)
Dog d = new Dog(); //创建Dog类对象,引用名为d 实际对象是在内存中new出来的对象
//引用名d只是具有new出来对象的内存地址
Pet p = d; //将子类对象,向上转型,---转型就是将引用名d中的地址给与p
Object o = p; //将Pet类向上转型,也是地址的传递
//根据引用数据类型传值的特点,可以判断对象实际上就一个就是new Dog();
//这个时候instanceof判断出是Dog就不难理解了
并没有转换,只是引用变成了Object,实际堆内存中存放的对象还是原对象,所以用instanceof还是能判断出原来的对象。
如果有帮助,希望结帖