版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cadi2011/article/details/53002270
1、instanceof,没错这个非规范的单词,就是java中的关键字,大大神送给咱们的礼物之一。
2、既然是礼物,那一定很受用了。instanceof的作用就是判断 当前的一个实例对象是否为某一个class(其扩展类也可)的实例对象,如果是,返回true,反之,返回false。
3、看见第二条,有没有很乱?没事,直接上例子。
first.先写个基类,Animal,醉了,动物嘛,总得吃吧
public abstract class Animal{
void eat();
}
second.再写个扩展类,就用Dog吧,哈哈,醉了
public class Dog extends Animal {
public void eat() {
System.out.println("怎么吃,随狗吧");
}
}
third.再整个猫吧,我也是醉了
public class Cat extends Animal{
public void eat(){
System.out.println("猫吃");
}
}
好吧,猫和狗都有了
public class Home{
public static void main(String args[]) {
Animal oneAni = new Dog();
Animal twoAni = new Cat();
boolean tempOne = oneAni instanceof Cat;
boolean tempTwo = twoAni instanceof Dog;
}
}
4、总结
instanceof - >用于判断当前对象是否为某个class的对象,或者某个class的子类的对象
返回值是boolean类型,如果是则为true,如果不是则为false
5、有时候一个List里面,比如就是Animal的List里面,即有Dog、又有Cat,想对Dog和Cat判断出来分别做不同的事情,那就用instanceof再好不过了
伪代码
for(item 遍历Animal List) {
if(item instanceof Dog ) {
干点啥好呢,吃狗屎吧
}
if (item instanceof Cat) {
没得干,去舔舔自己的趾头吧
}
}