首页 分享 java多态实现电子宠物系统

java多态实现电子宠物系统

来源:萌宠菠菠乐园 时间:2024-12-15 20:51

 更新时间:2022年02月24日 12:28:59   作者:꧁এ悲宸๓₯㎕  

这篇文章主要为大家详细介绍了java多态实现电子宠物系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Java技术迷

本文实例为大家分享了java多态实现电子宠物系统的具体代码,供大家参考,具体内容如下

效果实现:

代码实现:

1、主人类:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

public class Master {

    public Pet adopt(String name){

        if ("狗狗".equals(name)){

            return new Dog();

        }else if (name.equals("企鹅")){

            return new Penguin();

        }

        return null;

    }

    public void feed(Pet pet, String food){

        pet.eat(food);

    }

    public void play(Pet pet){

        if(pet instanceof Dog){

            Dog d= (Dog) pet;

            d.catchDisk();

        }else if(pet instanceof Penguin){

            Penguin p= (Penguin) pet;

            p.swimInSouth();

        }

    }

    public Pet donate(String name){

        if("狗狗".equals(name)){

            return new Dog();

        }else if(name.equals("企鹅")){

            return new Penguin();

        }

        return null;

    }

}

2、狗狗类:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public class Dog extends Pet {

    public void catchDisk(){

        System.out.println("狗狗接飞盘!");

    }

    public Dog(int health) {

        super(health);

    }

    public Dog() {

    }

    @Override

    public void eat(String food) {

        System.out.println("狗狗吃"+food+",吃饱后健康值+3");

        setHealth(getHealth()+3);

    }

}

3、企鹅类:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public class Penguin extends Pet{

    public void swimInSouth(){

        System.out.println("企鹅在南极游泳!");

    }

    public Penguin(int health) {

        super(health);

    }

    public Penguin() {

    }

    @Override

    public void eat(String food) {

        System.out.println("企鹅宝宝吃"+food+",吃完后,健康值加5");

        setHealth(getHealth()+5);

    }

}

4、宠物类,Pet:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

public class Pet {

    private int health;

    public int getHealth() {

        return health;

    }

    public void setHealth(int health) {

        this.health = health;

        if(this.health>100){

            this.health=100;

            System.out.println("已经吃饱了,再吃就撑破了");

        }

    }

    public Pet() {

    }

    public Pet(int health) {

        this.health = health;

    }

    public void eat(String food){

        System.out.println("宠物吃"+food);

    }

}

5、测试类:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

public class Test {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        Master master = new Master();

        System.out.print("请输入您要领养的宠物:");

        String dname = sc.next();

        Pet p = master.adopt(dname);

        System.out.print("请输入您要喂得食物:");

        String dfood = sc.next();

        master.feed(p,dfood);

        System.out.println(p.getHealth());

        master.play(p);

        System.out.print("请输入您要玩的宠物:");

        String pname = sc.next();

        p = master.adopt(pname);

        System.out.print("请输入您要喂的食物:");

        String pfood = sc.next();

        master.feed(p,pfood);

        System.out.println(p.getHealth());

        master.play(p);

        System.out.print("请输入您要捐赠的宠物:");

        String jname = sc.next();

        Pet pet = master.donate(jname);

        System.out.println();

        System.out.println("您捐献的是:"+pet.getClass().getName());

    }

}

补:这里测试类我是让用户在控制台输入,如果不想输入,可将测试类Test换成下面的代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

public class TestPet {

    public static void main(String[] args) {

        Master m = new Master();

        Pet p = m.adopt("狗狗");

        m.feed(p,"大骨头");

        System.out.println(p.getHealth());

        m.play(p);

        p = m.adopt("企鹅");

        m.feed(p,"小鱼");

        System.out.println(p.getHealth());

        m.play(p);

        Pet pet = m.donate("狗狗");

        System.out.println("您捐献的是:"+pet.getClass().getName());

    }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

Java超详细讲解多态的调用Java轻松掌握面向对象的三大特性封装与继承和多态Java超详细讲解继承和多态的使用Java 继承与多态超详细梳理Java中的多态、抽象类和接口详解新手小白入门必学JAVA面向对象之多态Java中接口的多态详解Java多态实现原理详细梳理总结

蓄力AI

微信公众号搜索 “ 脚本之家 ” ,选择关注

程序猿的那些事、送书等活动等着你

原文链接:https://blog.csdn.net/weixin_44889894/article/details/111216161

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!

相关文章

深入理解java中的拷贝机制

深入理解java中的拷贝机制

这篇文章主要给大家深入介绍了java中的拷贝机制,网上关于java中拷贝的文章也很多,但觉得有必要再深的介绍下java的拷贝机制,有需要的朋友可以参考学习,下面来一起看看吧。

2017-02-02

java处理字节的常用工具类

java处理字节的常用工具类

这篇文章主要为大家详细介绍了java处理字节的常用工具类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

2018-03-03

使用 Spring Boot Admin 监控应用状态的详细过程

SpringCloud Gateway路由核心原理解析

SpringCloud Gateway路由核心原理解析

本文主要介绍了SpringCloudGateway的基础构建块、工作原理以及核心原理解析,SpringCloudGateway是Spring官方基于SpringSpringBoot和ProjectReactor等技术开发的网关,旨在为微服务架构提供一种简单而有效的统一的API路由管理方式

2024-10-10

Shiro中session超时页面跳转的处理方式

SpringBoot集成Nacos全过程

SpringBoot集成Nacos全过程

Nacos是阿里巴巴开源的项目,主要作为云原生应用的注册中心与配置中心,本文介绍Nacos的使用方法,包括依赖配置、配置文件的设置、启动类注解使用,以及如何实现配置文件的动态刷新,使用Nacos可以有效管理和刷新服务配置,无需重启应用即可更新设置

2024-09-09

Dubbo LoadBalance基于权重的随机负载均衡算法提高服务性能

Spring AOP实现Redis缓存数据库查询源码

Java8中接口的新特性使用指南

Java8中接口的新特性使用指南

接口改动一下就要修改对应的实现类,为了兼容老接口,Java8新增了默认方法和静态方法,下面这篇文章主要给大家介绍了关于Java8中接口新特性的相关资料,需要的朋友可以参考下

2021-11-11

三分钟读懂mybatis中resultMap和resultType区别

相关知识

java多态实现电子宠物系统
java特性封装、抽象、继承、多态理论
JAVA模式电子宠物系统的开发 app开发
宠物店管理系统源码解析与Java实现
多态实现主人喂养宠物
宠物游戏系统 java
多态
编写Java程序,以继承和多态思想模拟饲养员喂养不同动物的不同行为
基于nodejs宠物寄存系统的设计与实现
通过多态实现主人喂养各种宠物

网址: java多态实现电子宠物系统 https://www.mcbbbk.com/newsview748408.html

所属分类:萌宠日常
上一篇: 第六章:接口
下一篇: 宠物app平台

推荐分享