2020-8-5 Java泛型 练习

2020-8-5 Java泛型 练习

一、选择

  1. 以下语句正确的是:(多选) (AB)
    A. List list=new ArrayList();
    B. List list=new ArrayList<>();
    C. 已知Cat是Animal类的子类,则List list=new ArrayList();
    D. List list=new ArrayList();

二、编程

1.通过练习,掌握泛型作为方法参数的应用,具体内容见任务要求。运行效果如下:
2020-8-5 Java泛型 练习_第1张图片
任务:
2020-8-5 Java泛型 练习_第2张图片

package exercise;

public abstract class Animal {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract void play();

}

package exercise;

public class Cat extends Animal{

    @Override
    public void play() {
        System.out.println("小猫" + this.getName() + "在做游戏");
    }

    public Cat(String name) {
        this.setName(name);
    }

    public Cat() {
    }
}

package exercise;

public class Dog extends Animal {
    @Override
    public void play() {
        System.out.println("小狗" + this.getName() + "在做游戏");
    }

    public Dog(String name){
        this.setName(name);
    }

    public Dog() {
    }
}

package exercise;

import java.util.List;

public class AnimalPlay {
    public void aPlay(List<Animal> list){
        for (Animal lis:list){
            if(lis instanceof Cat){
                Cat cat = (Cat)lis;
                cat.play();
            }
            if (lis instanceof Dog){
                Dog dog = (Dog)lis;
                dog.play();
            }
        }
    }
}

package exercise;

import java.util.ArrayList;
import java.util.List;

public class AnimalTest {
    public static void main(String[] args) {
        Dog dog1 = new Dog("巴迪");
        Dog dog2 = new Dog("豆豆");
        Cat cat1 = new Cat("花花");
        Cat cat2 = new Cat("凡凡");
        List<Animal> list = new ArrayList<>();
        list.add(dog1);
        list.add(dog2);
        list.add(cat1);
        list.add(cat2);
        AnimalPlay ani = new AnimalPlay();
        ani.aPlay(list);
    }
}

你可能感兴趣的:(练习,java)