java用继承编写宠物乐园_用java编的实现宠物店领养宠物的功能

该博客介绍了如何使用Java编程实现一个宠物乐园,通过面向对象的继承思想创建Pet基类,以及Dog和Penguin子类。用户可以领养不同种类的宠物,并设置宠物的属性。示例代码展示了输入宠物名称、类型、品种和性别,然后输出宠物信息的过程。
摘要由CSDN通过智能技术生成

一:

public class Pet {

private String name;

private int health;

private int love;

PetShop(String name,int health,int love){

this.name=name;

this.health=health;

this.love=love;

}

public String getName(){

return name;

}

public void setName(String name){

this.name=name;

}

public int getHealth(){

return health;

} public void setHealth(int health){ if(health>100||health<0) { System.out.println("健康值应在0到100之间,默认值是40");} else this.health=health; } public int getLove(){ return love; } public void setLove(int love){ this.love=love; } public void speak(){ System.out.println("Hi,主人,我的名字是"+name+"我的健康值是"+health+"我和主人的亲密度是"

+love); }

public void Petshoppublic static void main(Sting[]args)

{Scanner input =new Scanner(System.in);

System.outprintln("欢迎来到宠物店");

//1.输入宠物名称

System.out.println("请输入要领养宠物的名字:");

String name=input.next();

//2.选择宠物

System.out.prinln("请输入要领养的宠物类型:(1.狗狗2.企鹅)");

swith(input.nextInt())

{ case 1:

// 2.1 如果是狗狗

//2.1.1 选择狗狗的品种

System.out.println(“请选择狗狗的品种:(1.聪明的拉布拉多犬” + “ 2.酷酷的雪纳瑞)”);

String strain = null;

if(input.nextInt() == 1){

strain = ”聪明的拉布拉多犬”;

} else {

strain = “酷酷的雪纳瑞”;

}

// 2.1.2 创建狗狗对象并赋值

Dog dog = new Dog();

dog.name = name;

dog.strain = strain;

// 2.1.3 输入狗狗信息

dog.print();

break;

case 2:

//2.2 如果是企鹅

//2.2.1 选择企鹅性别

System.out.println(“请选择企鹅的性别:(1.Q仔 2.Q妹)”);

String sex = null;

if(input.nextInt() == 1)

sex = ” Q仔”;

else

sex = “Q妹”

//2.2.2 创建企鹅对象并赋值

Penguin pgn = new Penguin();

pgn.name = name;

pgn.sex = sex;

//2.2.3 输出企鹅信息

pgn.print();

}

}

}

class Dog extends Pet{private String breed;

public Dog(String name,int health,int love,Strint breed)

{super(name,health,love);

this.breed=breed;}

public String getBreed(){

return breed;

}

public void setBreed(String breed){

this.breed=breed;

}

public void speak(){

super.speak();

System.out.println("我的品种是"+breed);

}

}

class Penguin extends pet

{private String sex;

public Penguin(String name,int health,int love,Strint breed)

{super(name,health,love);

this.sex=sex;}

public String getsex(){

return sex;

}

public void setsex(String sex){

this.sex=sex;

}

public void speak(){

super.speak();

System.out.println("我的性别是"+sex);

}

}

又好几天没有写博客啦,尽量以后少打游戏,多抽点时间写点文章。

这篇代码主要是一个宠物店类,主要用啦面向对象中继承的思想。先定义啦一个基类pet类,Dog类和pengguin类继承啦petl类。这是学java以来第一次用到面向对象的思想。并学到啦与c++不同的地方。继承的关键字extends,和supper()。

二:老师给的代码如下:

petshop

package jsj.java.exam.test05;

import java.util.Scanner;

public class PetShop {

public static void main(String[] args) {

System.out.println("欢迎来到宠物商店");

System.out.println("请输入要领养的宠物的名字");

Scanner input=new Scanner(System.in);

String name=input.next();

System.out.println("请输入你要领养的宠物的类型:(1 狗狗 2 企鹅)");

int type=input.nextInt();

Master master=new Master();

switch(type){

case 1:System.out.println("请输入狗的品种(1 聪明的拉布拉多犬 2苦苦的雪纳瑞)");

int breed=input.nextInt();

System.out.println("请输入狗的健康值");

int health=input.nextInt();

String s="";

if(breed==1){

s="聪明的拉布拉多犬";

}else{

s="苦苦的雪纳瑞";

}

Dog dog=new Dog(name,s,health,20);

System.out.println("喂养前:");

dog.speak();

master.feed(dog);

System.out.println("喂养后:");

dog.speak();

master.play(dog);

System.out.println("与主人玩耍后");

dog.speak();

break;

case 2:

System.out.println("请输入企鹅的性别(1Q仔 2Q妹)");

int sex=input.nextInt();

System.out.println("请输入企鹅得健康值");

health=input.nextInt();

s="";

if(sex==1){

s="Q仔";

}else{

s="Q妹";

}

Penguin penguin=new Penguin(name, s, health, 30);

penguin.speak();

master.feed(penguin);

System.out.println("喂养后:");

penguin.speak();

master.play(penguin);

System.out.println("与主人玩耍后");

penguin.speak();

}

}

}

pet.java

package jsj.java.exam.test05;

public abstract class Pet {

protected String name;

protected int health;

protected int love;

/**

*

* @param name

* @param health

* @param love

*/

public Pet(String name, int health, int love) {

super();

this.name = name;

this.health = health;

this.love = love;

}

/**

* 修改名字

* @param newName

*/

public void setName(String newName) {

name = newName;

}

/**

* 取得名字

*

* @return

*/

public String getName() {

return name;

}

public int getHealth() {

return health;

}

public void setHealth(int health) {

if (health >= 1 && health <= 100) {

this.health = health;

} else {

this.health = 10;

}

}

public int getLove() {

return love;

}

public void setLove(int love) {

this.love = love;

}

protected abstract void speak();//宠物自白的行为

protected abstract void eat();// 吃的行为

}

Penguin.java

package jsj.java.exam.test05;

public class Penguin extends Pet {

private String sex;

public Penguin(String name, String sex, int health, int love) {

super(name,health,love);

this.sex = sex;

}

/**

* 宠物的自白

*/

public final void speak() {

System.out.println("宠物的自白");

System.out.println("我的名字叫" + getName() + "我的健康状况是" + getHealth() + "我的性别是"

+ sex + "我与主人的亲密度为" + getLove());

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

//TODO 重写父类的eat方法,健康值增加6

@Override

protected void eat() {//--1

super.health=super.health+6;//--1

}

//TODO 定义子类特有的方法,游泳swimming

//输出"正在游泳",健康值减少3,与主人的亲密度增加5

public void swimming(){//--1

System.out.println("游泳");

super.health=super.health-3;//--1

super.love=super.love+5;//--1

}

}

Dog.java

package jsj.java.exam.test05;

//TODO 将Dog类定义完整

public class Dog extends Pet {//--1

private String breed;

public Dog(String name, String breed, int health, int love) {

//调用父类的构造方法,完成name,health,love属性的初始化

super(name,health,love);

this.breed = breed;

}

public String getBreed() {

return breed;

}

public void setBreed(String breed) {

this.breed = breed;

}

/**

* 宠物的自白

*/

public void speak() {

System.out.println("宠物的自白");

System.out.println("我的名字叫" + getName() + "我的健康状况是" + getHealth()

+ "我的品种是" + breed + "我与主人的亲密度为" + getLove());

}

//TODO 重写父类的eat方法,健康值增加3

@Override

protected void eat() {

super.health=super.health+3;

}

//TODO 定义子类特有的方法,接飞盘游戏catchFlyingDisk

//输出"正在玩接飞盘的游戏",健康值减少5,与主人的亲密度增加5

public void catchFlyingDisk(){

System.out.println("正在玩接飞盘的游戏");

super.health=super.health-5;

super.love=super.love+5;

}

}

Master.javapackage jsj.java.exam.test05;

/**

* 主人类

*/

public class Master {

//喂养动物的方法feed

public void feed(Pet pet){

pet.eat();

}

//TODO 定义与宠物玩耍的方法play

//如果是狗,则玩接飞盘游戏

//如果是企鹅,则游泳

public void play(Pet pet){

if(pet instanceof Dog){

((Dog) pet).catchFlyingDisk();

}else if(pet instanceof Penguin){

((Penguin) pet).swimming();

}

}

}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值