当我们进行对象的向下转型时,要如何判断父类引用的对象,本来是什么子类,解决办法:使用instanceof关键字。
格式:对象 instanceof 类型
这将会得到一个boolean值结果,也就是判断前面的对象能不能当作后面类型的实例。
Animal animal = new Cat(); animal.eat(); // 如果希望调用子类特有方法,需要向下转型 // 判断一下是啥 if(animal instanceof Dog){ Dog dog = (Dog)animal; dog.watchHouse(); } if(animal instanceof Cat){ Cat cat = (Cat)animal; cat.catchMouse(); } }