(多型問題)從一個Animal陣列中挑選出所有的Dog物件,並把這些物件放在一個Dog陣列中返回
阿新 • • 發佈:2018-12-13
package com.day11_1; import java.util.*; public class Test9 { public static void main(String[] args) { Animal[] as = { new Dog("鼠標出問題了很煩"), new Cat("Tom"), new Dog("明天買新滑鼠,雷蛇滑鼠也不靠譜"), new Cat("Grafield") }; Dog[] dogs = getAllDog(as); for(int i = 0;i<dogs.length;i++){ System.out.println(dogs[i].getName()); } } public static Dog[] getAllDog(Animal[] as){ Dog[] ds = new Dog[0]; int index = 0; for(int i = 0;i<as.length;i++){ if(as[i] instanceof Dog){ ds = Arrays.copyOf(ds,ds.length+1); ds[index]=(Dog)as[i]; index++; } } return ds; } } class Animal{ private String name; public Animal() { } public Animal(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } class Dog extends Animal{ public Dog() { } public Dog(String name){ super(name); } } class Cat extends Animal{ public Cat(){ } public Cat(String name){ super(name); } }