package Hello1;
import java.util.ArrayList;
import java.util.List;
public class Test9 {
public static void main(String[] args) {
}
static Dog[] findAllDogs(Animal[] as) { //Animal数组可以装猫狗鸡
List<Dog> result = new ArrayList<>();
//Dog o : as编译错误,因为o不一定是狗对象 所以得判断
for(Animal o : as) {
if(o instanceof Dog) { //o instanceof Dog 如果a是Dog类的实例 则o是狗
//result.add(o); 此时o是animal对象,即使o是狗,但是因为是多态,所以类型还是动物 所以得转类型
Dog d = (Dog) o; //将o对象强制转换成狗对象
result.add(d);
}
}
//Dog[] aa = new Dog[0];可以简写为 new Dog[] {} 空数组
Dog[] dd = result.toArray(new Dog[] {}); //参数是什么类型,就能转成什么类型的数组
//Dog[] dd = result.toArray(); 如果是无参的toArray最终只能转成Object类型的数组
return dd;
}
}
网友评论