父类:
- package cn.bdqn.demo01;
-
- public class Pet {
-
- private String name;
- private int health;
- private int love;
-
- public Pet() {
- super();
- }
-
- public Pet(String name, int health, int love) {
- super();
- 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) {
- this.health = health;
- }
- public int getLove() {
- return love;
- }
- public void setLove(int love) {
- this.love = love;
- }
-
-
-
- @Override
- public String toString() {
- return "宠物信息:name=" + name + ", health=" + health + ", love=" + love;
- }
-
-
- //定义一个去医院看病的方法
- public void toHospital(){
- System.out.println("宠物生病了,带宠物去医院看病.............");
- }
-
- }
Master类:
- package cn.bdqn.demo01;
-
- public class Master {
-
- //定义给Pet类对象看病的方法
- public void cure(Pet pet){
- //传递过来的pet的健康值<60{
- System.out.println("宠物生病了,需要去医院看病");
- pet.toHospital();
- }
- }
Cat类
- package cn.bdqn.demo01;
-
- public class Cat extends Pet{
-
- //定义属性
- private String color;
-
-
- public Cat() {
- super();
- }
-
-
- public Cat(String name, int health, int love, String color) {
- super(name, health, love);
- this.color = color;
- }
-
-
- public String getColor() {
- return color;
- }
-
-
- public void setColor(String color) {
- this.color = color;
- }
-
-
-
-
-
-
-
- @Override
- public String toString() {
- return "宠物信息:name=" + this.getName() + ", health=" + this.getHealth()
- + ", love=" + this.getLove() + ",color=" + color;
- }
-
-
- //pet类中toHospital()不足以满足cat类对象看病的需求,所以需要重写
- @Override
- public void toHospital() {
- if(this.getHealth()<60){
- System.out.println("打针,吃药.....");
- this.setHealth(80);
- }
- }
- }
Dog类:
- package cn.bdqn.demo01;
-
- public class Dog extends Pet {
-
- private String strain;
-
- public Dog() {
- super();
- }
-
- public Dog(String name, int health, int love, String strain) {
- super(name, health, love);
- this.strain = strain;
- }
-
- public String getStrain() {
- return strain;
- }
-
- public void setStrain(String strain) {
- this.strain = strain;
- }
-
- @Override
- public String toString() {
- return "宠物信息:name=" + this.getName() + ", health=" + this.getHealth() + ", love=" + this.getLove() + ",strain="+strain;
- }
-
- @Override
- public void toHospital() {
- if(this.getHealth()<60){
- System.out.println("打针.......");
- this.setHealth(90);
- }
- }
-
-
- }
测试:
- package cn.bdqn.demo01;
-
- public class Test {
-
- public static void main(String[] args) {
- //创建Master类对象,带宠物去看病
- Master master = new Master();
-
- //创建Cat类对象
- Cat cat1 = new Cat("Tom",55,99,"白色");
- System.out.println(cat1.getHealth());
-
- master.cure(cat1);//方法调用的时候,需要什么给什么
-
- System.out.println(cat1.getHealth());
- System.out.println("------------------------");
-
- Dog dog1 = new Dog("可乐",45,88,"柯基");
- System.out.println(dog1.getHealth());
- master.cure(dog1);
- System.out.println(dog1.getHealth());
- System.out.println("-------------------------");
-
- Penguin p1 = new Penguin("QQ",12,99,"公");
- System.out.println(p1.getHealth());
- master.cure(p1);
- System.out.println(p1.getHealth());
-
- System.out.println("-------------------");
-
-
- //类名 对象名 = new 子类类名();
- //向上转型: 父类的引用指向子类的实例
- Pet pet1 = new Cat("黑猫警长",45,100,"黑色");
- master.cure(pet1);
- System.out.println("------------------------");
-
- pet1 = new Dog("旺财",40,99,"哈士奇");
- master.cure(pet1);
- }
-
- }