Java重写的方法和覆盖
来源:互联网 发布:百度网盘老是网络异常 编辑:程序博客网 时间:2024/05/01 21:58
使用重写优化电子宠物系统需求说明:按照方法的重写或方法的覆盖的注意事项:
(1)子类根据需求对从父类继承的方法进行重新编写;
(2)重写时,可以用super.方法的方式来保留父类的方法;(3)构造方法不能被重写;回顾之前使用继承实现的电子宠物系统,请使用方法的重写或覆盖优化现有代码,重写宠物类的宠物自白方法,在不同类型的宠物进行自白时,介绍其不同的特性,如:狗狗的自白需要介绍其品种、企鹅的自白需要介绍其性别。实现如图所示的输出效果。
package cn.java.pet;/*** 宠物抽象类*/public class Pet { private String petName; //宠物名称 private int petHealth; //宠物健康值 private int petLove; //宠物亲密度 public Pet(){ } public Pet(String name){ this.petName = name; this.petHealth = 100; this.petLove = 0; } /** * 宠物自我介绍 */ public void printInfo(){ System.out.println("我的名字叫"+this.petName+",我的健康值是"+this.petHealth+",我与主人的亲密程度是"+this.petLove); } public String getPetName() { return petName; } public void setPetName(String petName) { this.petName = petName; } public int getPetHealth() { return petHealth; } public void setPetHealth(int petHealth) { this.petHealth = petHealth; } public int getPetLove() { return petLove; } public void setPetLove(int petLove) { this.petLove = petLove; } }package cn.java.pet;/*** 狗狗类*/public class DogPet extends Pet { private String dogBreed; //狗狗品种 //如果父类定义带有参数的构造函数未显示定义无参构造函数,那么子类必须需要调用父类需求的构造函数 public DogPet(String name,String breed){ super(name); this.dogBreed = breed; } /** * 狗狗自我介绍, 对宠物类printInfo()方法进行了重写(覆盖) */ public void printInfo(){ super.printInfo();//通过super关键字调用父类的需要的方法,super是指在子类中代表父类对象的引用(指向同一个堆内存中地址) System.out.println("我是一只"+this.dogBreed); }}package cn.java.pet;/*** 企鹅类*/public class PenguinPet extends Pet { private String penguinSex; //企鹅性别 public PenguinPet(String name,String sex){ super(name); this.penguinSex = sex; } /** * 企鹅自我介绍 ,对宠物类printInfo()方法进行了重写(覆盖) */ public void printInfo() { super.printInfo(); System.out.println("我的性别是"+this.penguinSex); } public String getPenguinSex() { return penguinSex; } public void setPenguinSex(String penguinSex) { this.penguinSex = penguinSex; }}package cn.java.pet.test;import cn.java.pet.DogPet;import cn.java.pet.PenguinPet;import cn.java.pet.Pet;/*** 测试类*/public class PetTest { public static void main(String[] args) { //创建狗狗实例对象 Pet dogPet = new DogPet("欧欧","雪娜瑞犬"); //狗狗自我介绍 dogPet.printInfo(); //创建企鹅实例对象 Pet penguinPet = new PenguinPet("楠楠","Q妹"); //企鹅自我介绍 penguinPet.printInfo(); }}
3 0
- Java重写的方法和覆盖
- Java重写的方法和覆盖
- C#和Java 方法重写和覆盖隐藏的区别
- Java的方法重写(覆盖)
- 方法重载和重写(覆盖)的区别
- Java中的方法重载和重写(覆盖)
- 方法重载和方法覆盖/重写的区别
- java基础---方法的重载(overload)和覆盖(重写)(override)
- 方法的覆盖(重写)
- Java 中方法的重写,重载与覆盖的关系
- Java类的设计----方法的重写、覆盖
- Java类的设计----方法的重写、覆盖
- 多态、继承---常量的覆盖和方法的重写
- 关于C#中类方法的重写和覆盖
- 关于C#中类方法的重写和覆盖
- java重写(覆盖)的实现
- Java的重写、覆盖、重载
- java中重载和覆盖(又称重写)的区别
- 关于Android依赖库文件的一些经验
- MPU6050使用dmp时,Pitch范围只有-90-90的问题
- htm页面l导出excel表格
- 启动页的主题
- 计算时间差隔多少分钟
- Java重写的方法和覆盖
- 487
- c# asp.net excel导出 80070005 拒绝访问
- 计算文章发表的天数是几天后
- Excel单元格下拉框引用其它Sheet中的值的方法
- navicate连接远程oracle链接 报cannot create oci enviroment 怎么办?
- RelativeLayout中的参数说明
- 关于HTTP状态码500错误和localhost无法访问
- css组合符