java中instanceof的使用

来源:互联网 发布:淘宝还有机会吗 编辑:程序博客网 时间:2024/05/03 22:33

instanceof的使用

//instanceof为运算符的一种
//格式 为     对象  instanceof  类名
//判断该对象是否为该类实例化的一种

要求:把Animals类型数组中的Dog类提取出来放入Dog数组类型中 (Animals为父类,其他类为子类)


class Animals{void eat(){};void sleep(){};}class Dog extends Animals{void eat(){System.out.println("狗狗在吃饭");};void sleep(){System.out.println("狗狗在睡觉");};}class Cat  extends Animals{void eat(){System.out.println("猫咪在吃饭");};void sleep(){System.out.println("猫咪在睡觉");};}public class Test2 {public static void main(String[] args) {// TODO Auto-generated method stubAnimals[] animals=new Animals[5];Dog dog1=new Dog();Dog dog2=new Dog();Dog dog3=new Dog();Cat cat1=new Cat();Cat cat2=new Cat();//把Dog和Cat类型的对象存入Animals类型数组中animals[0]=dog1;animals[1]=dog2;animals[2]=dog3;animals[3]=cat1;animals[3]=cat2;//从Animals数组中取出Dog类型放入Dog数组中//循环查找确定Dog数组长度int times=0;for (int i = 0; i < animals.length; i++) {if(animals[i] instanceof Dog){times++;}}//取出Dog类型放入dog数组中Dog[] dog=new Dog[times];int j=0;for (int i = 0; i < animals.length; i++) {if(animals[i] instanceof Dog){dog[j]=(Dog)animals[i];j++;}}System.out.println("dog数组的长度为"+dog.length);}}
//dog数组的长度为3

原创粉丝点击