好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

查看更多关于java多态实现电子宠物系统的详细内容...

  阅读:37次