Java 多态案例

|--需求说明

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

|--实现方式

采用多态实现

|--代码内容

 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 }
测试代码类

|--运行结果

 

转载于:https://www.cnblogs.com/twuxian/p/11181568.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值