class ObjectConvertTest{
public static void main(String []args){
Animal a=new Animal("animla");
Dog dog=new Dog("dog","red");
Cat cat=new Cat("cat","blue");
ObjectConvertTest oct=new ObjectConvertTest();
oct.f(a);
oct.f(dog);
oct.f(cat);
}
public void f(Animal a){
System.out.println(a.name);
if(a instanceof Dog){
Dog dog=(Dog)a;
System.out.println(dog.name+":"+dog.eyeColor);
}
if(a instanceof Cat){
Cat c=(Cat)a;
System.out.println(c.name+":"+c.eyeColor);
}
}
}
后面是Animal,Dog等的定义,其中Dog,Cat都是继承Animal的
thinking in java中也有类似的例子,不过还是不清楚instance of是什么意思public void f(Animal a)中定义了参数为Animal,那么它的子类可以作为参数传进去??
instance of的作用就是在传入参数不是这个类本身,而是它的某个子类时,判断它传入的是哪一个子类,是这样吗??
public static void main(String []args){
Animal a=new Animal("animla");
Dog dog=new Dog("dog","red");
Cat cat=new Cat("cat","blue");
ObjectConvertTest oct=new ObjectConvertTest();
oct.f(a);
oct.f(dog);
oct.f(cat);
}
public void f(Animal a){
System.out.println(a.name);
if(a instanceof Dog){
Dog dog=(Dog)a;
System.out.println(dog.name+":"+dog.eyeColor);
}
if(a instanceof Cat){
Cat c=(Cat)a;
System.out.println(c.name+":"+c.eyeColor);
}
}
}
后面是Animal,Dog等的定义,其中Dog,Cat都是继承Animal的
thinking in java中也有类似的例子,不过还是不清楚instance of是什么意思public void f(Animal a)中定义了参数为Animal,那么它的子类可以作为参数传进去??
instance of的作用就是在传入参数不是这个类本身,而是它的某个子类时,判断它传入的是哪一个子类,是这样吗??
A a = new A(); if (a.instanceof(A))
System.out.println("True");
}看看吧 楼主 解释楼上的都解释清楚了
istanceof 可以判断其直接对应的类型如Dog,当然也会向父类兼容的。上面的a instanceof Animal返回结果也是true的。