首页 > 分享 > 学会继承、多态、封装(1)——Java实现宠物店(领养宠物)

学会继承、多态、封装(1)——Java实现宠物店(领养宠物)

文章目录 1.使用继承1.1 设计类图1.2 类代码1.2.1 Pet类代码1.2.2 Dog类代码1.2.3 Penguin类代码 1.3 第一阶段总结 2.抽象类3 改进代码,实现宠物店功能3.1 实现效果3.2 实现代码

本节我们将实现一个小的宠物店系统,可以领养小狗和企鹅。

1.使用继承

1.1 设计类图

如果不使用继承
在这里插入图片描述
我们两种宠物有很多相同的属性和方法,所以我们创建一个Pet类作为它们的子类。改进后类图
在这里插入图片描述

1.2 类代码

1.2.1 Pet类代码

package petShop; public class Pet {private String name;//成员变量private int health;private int love;public Pet() {// TODO Auto-generated constructor stubhealth=100;love=0;}//无参构造方法,默认健康值为100,亲密度为0public Pet(String name, int health, int love) {super();this.name = name;this.health = health;this.love = love;}//带了三个参数的构造方法可以直接赋初值//set和get方法public String getName() {return name;}public void setName(String name) {this.name = name;}public int getHealth() {return health;}public void setHealth(int health) {this.health = health;}public int getLove() {return love;}public void setLove(int love) {this.love = love;}//print方法可以打印宠物的属性public void print(){System.out.println("宠物的自白:");System.out.println("我的名字叫"+name+",我的健康值是"+health+",我和主人的亲密程度是"+love);};public static void main(String[] args) {// TODO Auto-generated method stub} }

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 1.2.2 Dog类代码

package petShop; public class Dog extends Pet{//继承Petprivate String strain;//定义品种属性//两种构造方法public Dog() {// TODO Auto-generated constructor stub}public Dog(String name, int health, int love,String strain) {super(name, health, love);//super可以直接访问父类的构造方法this.strain = strain;}//get、set方法public String getStrain(){return strain;}public void setStrain(String strain) {this.strain = strain;}//重新父类中的print()方法@Overridepublic void print() {// TODO Auto-generated method stubsuper.print();System.out.println("我是一只"+strain);}public static void main(String[] args) {// TODO Auto-generated method stubDog d1 = new Dog("欧欧",100, 0, "雪纳瑞犬");d1.print();} }

12345678910111213141516171819202122232425262728293031323334353637

输出结果
在这里插入图片描述

1.2.3 Penguin类代码

//与Dog类相似 package petShop; public class Penguin extends Pet{private String sex;public Penguin() {// TODO Auto-generated constructor stub}public Penguin(String name, int health, int love,String sex) {super(name, health, love);this.sex = sex;}public String getSex(){return sex;}public void setSex(String sex){this.sex = sex;}@Overridepublic void print() {// TODO Auto-generated method stubsuper.print();System.out.println("我的性别"+sex);}public static void main(String[] args) {// TODO Auto-generated method stubPenguin p1 = new Penguin("楠楠", 100, 0, "Q妹");p1.print();} }

1234567891011121314151617181920212223242526272829303132333435

输出结果
在这里插入图片描述

1.3 第一阶段总结

继承可以减少我们的代码量,如果两个类存在许多相同的属性和方法,我们可以为其创造一个父类。
子类可以继承父类的属性和方法,但不是全部,有3类主要的内容无法被继承:1.构造方法(只能使用super来调用)2.private修饰的属性和方法 3.默认修饰符情况下,子类不在父类包中时也无法继承。

可以使用super关键字类访问父类中的方法,但是必须是在第一行。this是用来访问自己的构造方法,也需要放在第一行。所以在一个构造方法里面不可以同时有this和super。
如果我们不写super构造方法,那么系统自动会默认第一行是super(),若父类没有无参构造方法,那么会发生错误。

2.抽象类

如果我们不想让父类实例化,我们可以将其定义为是抽象类。在本次操作中,Pet类的实例化是没有意义的,因为不够具体,所以我们可以将其设为抽象类。

3 改进代码,实现宠物店功能

3.1 实现效果

在这里插入图片描述

3.2 实现代码

public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);System.out.println("欢迎您来到宠物店");System.out.println("请输入要领养的宠物的名字");String name = in.next();//用name变量存储名字System.out.println("请选择要领养的宠物类型(1、狗狗2、企鹅)");int type=in.nextInt();if(type==1){System.out.println("请选择狗狗的品种(1、阿拉斯加 2、哈士奇)");type=in.nextInt();String strain;if(type==1) strain="阿拉斯加";else if(type==2) strain="哈士奇";else{System.out.println("请输入正确的序号");return;}Dog p1 = new Dog();p1.setName(name);p1.setStrain(strain);p1.print();}else if(type==2){System.out.println("请选择企鹅的性别(1、Q仔 2、Q妹)");type=in.nextInt();String sex;if(type==1) sex="Q仔";else if(type==2) sex="Q妹";else{System.out.println("请输入正确的序号");return;}Penguin p1 = new Penguin();p1.setName(name);p1.setSex(sex);p1.print();}else{System.out.println("请输入正确的序号");}}

1234567891011121314151617181920212223242526272829303132333435363738394041424344

相关知识

java测试类pet
Java笔记:多态polymorphic
毕业设计:基于java的宠物领养系统设计与实现
用java编的实现宠物店领养宠物的功能
案例驱动式Python学习笔记【第六篇】电子宠物
毕业设计:基于java的宠物管理系统设计与实现
案例27:基于Java宠物领养系统开题报告设计
Java任务项目
宠物领养系统设计实现
小动物领养网站/宠物救助网站

网址: 学会继承、多态、封装(1)——Java实现宠物店(领养宠物) https://m.mcbbbk.com/newsview110416.html

所属分类:萌宠日常
上一篇: 宠物店装修多少钱 宠物店装修风格
下一篇: 成华区爱宠宠宠物店