一、选择
以下语句正确的是:(多选) AB
A. List<String> list=new ArrayList<String>();
B. List<Integer> list=new ArrayList<>();
C. 已知Cat是Animal类的子类,则List<Animal> list=new ArrayList<Cat>();
D. List<Object> list=new ArrayList<Integer>();
二、编程
通过练习,掌握泛型作为方法参数的应用,具体内容见任务要求。运行效果如下:
任务:
public abstract class Animal {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Animal() {
super();
}
public Animal(String name) {
super();
this.setName(name);
}
public abstract void play();
}
public class Cat extends Animal {
public Cat(){
super();
}
public Cat(String name) {
super(name);
}
public void play() {
System.out.println("小猫" + this.getName() + "在做游戏!");
}
}
public class Dog extends Animal {
public Dog() {
super();
}
public Dog(String name) {
super(name);
}
public void play() {
System.out.println("小狗" + this.getName() + "在做游戏!");
}
}
import java.util.List;
public class AnimalPlay {
public void animalPlay(List<? extends Animal> list) {
for (int i = 0; i < list.size(); i++) {
list.get(i).play();
}
}
}
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Dog> list1 = new ArrayList<>();
List<Cat> list2 = new ArrayList<>();
list1.add(new Dog("巴迪"));
list1.add(new Dog("豆豆"));
list2.add(new Cat("花花"));
list2.add(new Cat("凡凡"));
AnimalPlay ap = new AnimalPlay();
ap.animalPlay(list1);
ap.animalPlay(list2);
}
}