Java多态的应用
最新推荐文章于 2024-03-18 21:39:26 发布

爱笑得Boy 于 2016-12-27 15:51:24 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1.使用多态实现为宠物喂食需求说明:实现如果所示的当宠物饿了(健康值介于0至100之间时),
主人需要为宠物喂食(健康值加3,但上限不超过100),为宠物增加健康值的输出效果。
2.使用多态为宠物看病需求说明:
(1)编写主人类(Master),添加不同的方法,根据输入的宠物类型不同,为不同的宠物看病。编写测试类验证;
(2)使用多态修改代码,为各宠物类添加看病的方法,主人类中保留一个为宠物看病方法即可,参数类型为宠物类类型。编写测试类验证输出效果如图所示。
(注意:同一个引用类型,使用不同的实例而执行不同操作就是多态;方法重写是实现多态的基础)
package cn.java.pet;
public abstract class Pet {
private String petName;
private int petHealth;
private int petLove;
public Pet(){
}
public Pet(String name){
this.petName = name;
this.petHealth = 100;
this.petLove = 0;
}
public void printInfo(){
System.out.println("我的名字叫"+this.petName+",我的健康值是"+this.petHealth+",我与主人的亲密程度是"+this.petLove);
}
public abstract void cure();
public abstract void eat();
public abstract void play();
public String getPetName() {
return petName;
}
public void setPetName(String petName) {
this.petName = petName;
}
public int getPetHealth() {
return petHealth;
}
public void setPetHealth(int petHealth) {
this.petHealth = petHealth;
}
public int getPetLove() {
return petLove;
}
public void setPetLove(int petLove) {
this.petLove = petLove;
}
}
package cn.java.pet;
public class DogPet extends Pet {
private String dogBreed;
public DogPet(String name,String breed){
super(name);
this.setDogBreed(breed);
}
public void printInfo(){
super.printInfo();
System.out.println("我是一只"+this.getDogBreed());
}
public void cure() {
if(this.getPetHealth()<= 10){
System.out.println("吃药、打针");
this.setPetHealth(this.getPetHealth() + 50);
}else{
System.out.println("主人,我很健康不需要看病.");
}
}
public void eat() {
if(this.getPetHealth()<= 100){
System.out.println("狗狗"+this.getPetName()+"吃饱啦!健康值增加3.");
this.setPetHealth(this.getPetHealth()+3);
}else{
System.out.println("狗狗"+this.getPetName()+"已经太饱啦,需要运动."+"健康值:"+this.getPetHealth());
}
}
public void play() {
System.out.println("狗狗"+this.getPetName()+"正在玩飞盘...");
this.setPetLove(this.getPetLove()+5);
this.setPetHealth(this.getPetHealth()-10);
}
public String getDogBreed() {
return dogBreed;
}
public void setDogBreed(String dogBreed) {
this.dogBreed = dogBreed;
}
}
package cn.java.pet;
public class PenguinPet extends Pet {
private String penguinSex;
public PenguinPet(String name,String sex){
super(name);
this.penguinSex = sex;
}
public void printInfo() {
super.printInfo();
System.out.println("我的性别是"+this.penguinSex);
}
public void cure() {
if(this.getPetHealth()<= 10){
System.out.println("吃药 、疗养");
this.setPetHealth(this.getPetHealth()+50);
}else{
System.out.println("主人,我很健康不需要看病.");
}
}
public void eat() {
if(this.getPetHealth()<= 100){
System.out.println("企鹅"+this.getPetName()+"吃饱啦!健康值增加5");
this.setPetHealth(this.getPetHealth()+5);
}else{
System.out.println("企鹅"+this.getPetName()+"太饱啦,需要运动!"+"健康值:"+this.getPetHealth());
}
}
public void play() {
System.out.println("企鹅"+this.getPetName()+"正在游泳...");
this.setPetLove(this.getPetLove()+5);
this.setPetHealth(this.getPetHealth()-10);
}
public String getPenguinSex() {
return penguinSex;
}
public void setPenguinSex(String penguinSex) {
this.penguinSex = penguinSex;
}
}
package cn.java.pet;
public class Master {
public void treatPet(Pet pet){
pet.cure();
}
public void GamePet(Pet pet){
pet.play();
}
public void eatPet(Pet pet){
pet.eat();
}
}
package cn.java.pet.test;
import cn.java.pet.DogPet;
import cn.java.pet.Master;
import cn.java.pet.PenguinPet;
import cn.java.pet.Pet;
public class PetTest {
public static void main(String[] args) {
Master master = new Master();
Pet dogPet = new DogPet("欧欧","雪娜瑞犬");
master.GamePet(dogPet);
dogPet.printInfo();
master.eatPet(dogPet);
dogPet.printInfo();
master.treatPet(dogPet);
dogPet.printInfo();
}
}
相关知识
java多态实现电子宠物系统
Java多态的应用
编写Java程序,以继承和多态思想模拟饲养员喂养不同动物的不同行为
多态应用
java特性封装、抽象、继承、多态理论
多态
Java笔记:多态polymorphic
Java猫和狗(继承,多态,抽象,接口版)上
java 多态
解析java多态经典习题
原文链接: Java多态的应用 https://m.mcbbbk.com/newsview968426.html
| 上一篇: 2024版宠物猫寄养及宠物陪伴、... | 下一篇: 一种宠物照料系统的制作方法 |




