I.在 //1, //2, //3 处填上适当的get/set 方法和构造方法
II.完成//4 处的填空。getAllDog 方法从一个Animal 数组中挑选出所有的Dog对象,并把这些对象
放在一个Dog 数组中返回。
//(多态,instanceof)有如下代码
class Animal{
private String name;
// 1
}
class Dog extends Animal{
//2
}
class Cat extends Animal{
//3
}
public class TestAnimal{
public static void main(String args[]){
Animal[] as = new Animal[]{
new Dog("Pluto"),
new Cat("Tom"),
new Dog("Snoopy"),
new Cat("Garfield")
};
Dog[] dogs = getAllDog(as);
for(int i = 0; i<dogs.length; i++){
System.out.println(dogs[i].getName());
}
}
public static Dog[] getAllDog(Animal[] as){
//4
}
// 1
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
//2
public Dog() {
}
public Dog(String name) {
this.setName(name);
}
public String getName(){
return super.getName();
}
public void setName(String name){
super.setName(name);
}
//3
public Cat() {
}
public Cat(String name) {
this.setName(name);
}
public String getName(){
return super.getName();
}
public void setName(String name){
super.setName(name);
}
//4
Dog[] dog =new Dog[2]; //声明一个变量,此变量用于下面循环赋值时
int j=0; //构造一个for循环,进行赋值
for(int i=0;i<as.length;i++) { //构造一个条件分支进行对象类型的判断,将是dog类型的进行赋值
if(as[i] instanceof Dog==true) {
dog[j]=(Dog) as[i];
j++;
}
}
return dog;
}