Java学习之多态二
目录
一、运用多态解决宠物喂食问题
原理分析
运行测试
运行结果
分析
增加宠物和食物种类
Pig类
Rice类
测试
运行结果
一、运用多态解决宠物喂食问题
改变Master类的feed方法的参数列表
package com.hspedu.poly_;
public class Master {
private String name;
public Master(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void feed(Animal animal, Food food){
System.out.println("主人" + name + "给"+ animal.getName() + "喂" +
food.getName());
}
}
原理分析
1)animal的编译类型是Animal,可以指向(接收)Animal子类的对象
2)food的编译类型是Food,可以指向(接收)Food子类的对象
运行测试
在Poly01.java中测试,为了区分加~
package com.hspedu.poly_;
public class Poly01 {
public static void main(String[] args) {
Master master = new Master("小李");
Dog spike = new Dog("Spike~");
Bone bone = new Bone("大骨头~");
master.feed(spike,bone);
Cat tom = new Cat("Tom~");
Fish fish = new Fish("鱼罐头~");
master.feed(tom,fish);
}
}
运行结果
分析
因为spike是Dog类的对象,Dog类是Animal的子类,Animal可以接收子类的对象的传参;bone传参的原理也是如此
增加宠物和食物种类
增加宠物Pig类继承Aniaml类,增加食物Rice类,继承Food类,别的都不需要,在Poly01中直接创建新对象然后调用feed方法即可,这就是多态的便利
Pig类package com.hspedu.poly_;
public class Pig extends Animal{
public Pig(String name) {
super(name);
}
}
Rice类package com.hspedu.poly_;
public class Rice extends Food{
public Rice(String name) {
super(name);
}
}
测试package com.hspedu.poly_;
public class Poly01 {
public static void main(String[] args) {
Master master = new Master("小李");
Dog spike = new Dog("Spike~");
Bone bone = new Bone("大骨头~");
master.feed(spike,bone);
Cat tom = new Cat("Tom~");
Fish fish = new Fish("鱼罐头~");
System.out.println("===============");
master.feed(tom,fish);
Pig pig = new Pig("猪猪侠");
Rice rice = new Rice("八宝饭");
System.out.println("============");
master.feed(pig,rice);
}
}
运行结果相关知识
java特性封装、抽象、继承、多态理论
java 多态
Java笔记:多态polymorphic
编写Java程序,以继承和多态思想模拟饲养员喂养不同动物的不同行为
【Java学习记录】十二 Java中的多态
Java猫和狗(继承,多态,抽象,接口版)下
java开发桌面宠物
多态
(java)多态
Java学习笔记——Object类、多态、final
网址: Java学习之多态二 https://www.mcbbbk.com/newsview581236.html
上一篇: Spring PecClinic |
下一篇: 如何打造一个完美的宠物水族馆 |
推荐分享

- 1我的狗老公李淑敏33——如何 5096
- 2南京宠物粮食薄荷饼宠物食品包 4363
- 3家养水獭多少钱一只正常 3825
- 4豆柴犬为什么不建议养?可爱的 3668
- 5自制狗狗辅食:棉花面纱犬的美 3615
- 6狗交配为什么会锁住?从狗狗生 3601
- 7广州哪里卖宠物猫狗的选择性多 3535
- 8湖南隆飞尔动物药业有限公司宠 3477
- 9黄金蟒的价格 3396
- 10益和 MATCHWELL 狗 3352