isnstanceof判断实例对象是如何工作的

父类的一个继承类的实例对象被类型转换成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还是能判断出原来的对象。
如果有帮助,希望结帖