服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - java多态实现电子宠物系统

java多态实现电子宠物系统

2022-07-27 10:21এ悲宸๓₯㎕ Java教程

这篇文章主要为大家详细介绍了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());
    }
}

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

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

延伸 · 阅读

精彩推荐