面向对象-多态-练习-循环输出3个List

练习一:

1、见注1

 

package com.iit.demo;

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

public class Start {
    public static void main(String[] args) {
        List<Animal> listAnimal = new ArrayList(5);
        listAnimal.add(new Animal("动物1"));
        listAnimal.add(new Animal("动物2"));

        List<Dog> listDog = new ArrayList(5);
        listDog.add(new Dog("小黑"));
        listDog.add(new Dog("小灰"));

        List<RescueDog> listrRdog = new ArrayList(5);
        listrRdog.add(new RescueDog("大黑"));
        listrRdog.add(new RescueDog("大灰"));
        //注1 (要求:代码尽量通用,尽量少重复,提示:要写到方法中,如:showList(listAnimal))
        //已知Animal类、Dog类、RescueDog类,请编写上面3个List的循环语句,功能是打印所遍历的元素;其中对于Dog的对象,要调用savePeople()方法。。
    }
}

 

已知代码:

package com.iit.demo;
//优化:将name属性提到父类并统一开发toString()
public class Animal {
    private String name;
    public Animal(String name){
        this.name = name;
    }
    @Override
    public String toString() {
        return "Animal{" +
                "name='" + name + '\'' +
                '}';
    }
}

//飞翔接口
interface IFly{
    void fly();
}

//狗狗类
class Dog extends Animal implements IFly{
    public Dog(String name) {
        super(name);
    }
    public void savePeople(String name){
        System.out.println("救了:"+name);
    }

    @Override
    public void fly() {
        System.out.println("风口上飞起来...");
    }
}
//救生犬
class RescueDog extends Dog{
    public RescueDog(String name) {
        super(name);
    }
}

 

listAnimal 
posted @ 2022-05-23 15:09  xiaoyongdata  阅读(65)  评论(0)    收藏  举报