Java 多态案例

匿名 (未验证) 提交于 2019-12-02 21:52:03

|--需求说明

用多态的方式写一个宠物生病看医生的例子

|--实现方式

采用多态实现

|--代码内容

 1 public class Pet {  2     private String name = "无名氏";// 昵称  3     private int health = 100;// 健康值  4     private int love = 20;// 亲密度  5   6     //无参构造方法  7     public Pet() {  8     }  9  10     //带参构造方法 11     public Pet(String name, int health, int love) { 12         this.name = name; 13         this.health = health; 14         this.love = love; 15     } 16  17     public String getName() { 18         return name; 19     } 20  21     public void setName(String name) { 22         this.name = name; 23     } 24  25     public int getHealth() { 26         return health; 27     } 28  29  30     //设定健康值的范围 31     public void setHealth(int health) { 32         if (health < 0 || health > 100) { 33             System.out.println("健康值应该在0至100之间,默认值为60。"); 34             this.health = 60; 35             return; 36         } 37         this.health = health; 38     } 39  40     public int getLove() { 41         return love; 42     } 43  44     //设置亲密度范围,如果不在范围内,就给一个默认值 45     public void setLove(int love) { 46         if (love < 0 || love > 100) { 47             System.out.println("亲密度应该在0至100之间,默认值为10。"); 48             this.love = 10; 49             return; 50         } 51         this.love = love; 52     } 53  54     //打印属性,让控制台可以看到 55     public void print() { 56         System.out.println("宠物的自白:\n我的名字叫" + 57                 this.name + ",我的健康值是" + this.health 58                 + ",我和主人的亲密程度是" + this.love + "。"); 59     } 60  61     //父类方法--看医生 62     public void toHospital() { 63     } 64  65 }
宠物父类
 1 public class Cow extends Pet {  2     //无参构造方法  3     public Cow() {  4     }  5   6     //带参构造方法  7     public Cow(String name, int health, int love) {  8         super(name, health, love);  9     } 10  11     //重写看医生的方法 12     @Override 13     public void toHospital() { 14         System.out.println("洗洗,刷刷"); 15         this.setHealth(80); 16     } 17 }
宠物子类--牛类
1 public class Master { 2     // 主人给宠物看病 3     public void cure(Pet pet) { 4         if (pet.getHealth() < 50) { 5             pet.toHospital(); 6         } 7     } 8 }
主人如果看到宠物生病就看医生类
 1 public class Test {  2     public static void main(String[] args) {  3         //创建实例  4         Pet cow = new Cow();  5         //设定牛的名字  6         cow.setName("独孤求牛");  7         //设定一个较低的健康值  8         cow.setHealth(30);  9         cow.setLove(85); 10  11         Master master = new Master(); 12         master.cure(cow); 13        //输出看下,健康值是多少 14         cow.print(); 15     } 16 }
测试代码类

|--运行结果

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!