首页 > 技术文章 > 多态的使用

dupeilin 2020-05-19 11:27 原文

2020-05-19

编写程序,模拟主人喂养宠物的场景:

定义宠物类:Cat,提供一个eat()方法表示吃。

定义宠物类:Bird,提供一个eat()方法表示吃。

定义主人类:Master,提供两个feed()方法来喂养。
该方法需要一个宠物的参数:
例如:
feed(Cat c)
feed(Bird b)

然后思考,怎么利用多态机制改良程序。尽可能改良。然后总结多态的好处。

 动物类

public class Animal {
    public void eat() {

    }
}

 

鸟类
public class Bird  extends Animal{
    @Override
    public void eat(){
        System.out.println("鸟吃小米");
    }

}

 


猫类
public class Cat extends Animal  {
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }

}

 


主人类
public class Master {
    public void feed(Animal a){
        a.eat();
    }
}

 


测试类
public class Text {
    public static void main(String[] args) {
        Master lisi = new Master();
        Animal c = new Cat();
        lisi.feed(c);

        Animal b = new Bird();
       lisi.feed(b);
       //一般直接传递new对象 不在用"="赋值
       lisi.feed(new Bird());
    }
}

 

推荐阅读