用instanceof关键字进行判断

/*
如何才能知道一个父类引用的对象,本来是什么子类?
格式:
对象 instanceof 类型
这将会得到一个boolean值结果,也就是判断前面的对象能不能当做后面类型的实例。
*/
public class Demo02Instanceof {
public static void main(String[] args) {
// Animal animal=new Cat();//本来是一只猫
// animal.eat();//猫吃鱼

Animal animal=new Dog();//本来是一只狗
animal.eat();//狗吃骨头

//如果希望调用子类特有方法,需要向下转型
//判断一下父类引用animal本来是不是Dog
if(animal instanceof Dog){
Dog dog=(Dog)animal;
dog.watchHouse();//狗看家
}
//判断一下animal本来是不是Cat
if(animal instanceof Cat){
Cat cat=(Cat)animal;
cat.CatchMouse();//猫抓老鼠
}
//结果:
//狗吃骨头
//狗看家
giveMeAPet(new Dog());
}
public static void giveMeAPet(Animal animal){
if(animal instanceof Dog){
Dog dog=(Dog) animal;
dog.watchHouse();
}
if(animal instanceof Cat){
Cat cat=(Cat)animal;
cat.CatchMouse();
}
}
}
posted @   开山y  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示