• JAVA重写与多态


     父类:

    1. package cn.bdqn.demo01;
    2. public class Pet {
    3. private String name;
    4. private int health;
    5. private int love;
    6. public Pet() {
    7. super();
    8. }
    9. public Pet(String name, int health, int love) {
    10. super();
    11. this.name = name;
    12. this.health = health;
    13. this.love = love;
    14. }
    15. public String getName() {
    16. return name;
    17. }
    18. public void setName(String name) {
    19. this.name = name;
    20. }
    21. public int getHealth() {
    22. return health;
    23. }
    24. public void setHealth(int health) {
    25. this.health = health;
    26. }
    27. public int getLove() {
    28. return love;
    29. }
    30. public void setLove(int love) {
    31. this.love = love;
    32. }
    33. @Override
    34. public String toString() {
    35. return "宠物信息:name=" + name + ", health=" + health + ", love=" + love;
    36. }
    37. //定义一个去医院看病的方法
    38. public void toHospital(){
    39. System.out.println("宠物生病了,带宠物去医院看病.............");
    40. }
    41. }

    Master类:

    1. package cn.bdqn.demo01;
    2. public class Master {
    3. //定义给Pet类对象看病的方法
    4. public void cure(Pet pet){
    5. //传递过来的pet的健康值<60{
    6. System.out.println("宠物生病了,需要去医院看病");
    7. pet.toHospital();
    8. }
    9. }

    Cat类

    1. package cn.bdqn.demo01;
    2. public class Cat extends Pet{
    3. //定义属性
    4. private String color;
    5. public Cat() {
    6. super();
    7. }
    8. public Cat(String name, int health, int love, String color) {
    9. super(name, health, love);
    10. this.color = color;
    11. }
    12. public String getColor() {
    13. return color;
    14. }
    15. public void setColor(String color) {
    16. this.color = color;
    17. }
    18. @Override
    19. public String toString() {
    20. return "宠物信息:name=" + this.getName() + ", health=" + this.getHealth()
    21. + ", love=" + this.getLove() + ",color=" + color;
    22. }
    23. //pet类中toHospital()不足以满足cat类对象看病的需求,所以需要重写
    24. @Override
    25. public void toHospital() {
    26. if(this.getHealth()<60){
    27. System.out.println("打针,吃药.....");
    28. this.setHealth(80);
    29. }
    30. }
    31. }

     Dog类:

    1. package cn.bdqn.demo01;
    2. public class Dog extends Pet {
    3. private String strain;
    4. public Dog() {
    5. super();
    6. }
    7. public Dog(String name, int health, int love, String strain) {
    8. super(name, health, love);
    9. this.strain = strain;
    10. }
    11. public String getStrain() {
    12. return strain;
    13. }
    14. public void setStrain(String strain) {
    15. this.strain = strain;
    16. }
    17. @Override
    18. public String toString() {
    19. return "宠物信息:name=" + this.getName() + ", health=" + this.getHealth() + ", love=" + this.getLove() + ",strain="+strain;
    20. }
    21. @Override
    22. public void toHospital() {
    23. if(this.getHealth()<60){
    24. System.out.println("打针.......");
    25. this.setHealth(90);
    26. }
    27. }
    28. }

    测试:

    1. package cn.bdqn.demo01;
    2. public class Test {
    3. public static void main(String[] args) {
    4. //创建Master类对象,带宠物去看病
    5. Master master = new Master();
    6. //创建Cat类对象
    7. Cat cat1 = new Cat("Tom",55,99,"白色");
    8. System.out.println(cat1.getHealth());
    9. master.cure(cat1);//方法调用的时候,需要什么给什么
    10. System.out.println(cat1.getHealth());
    11. System.out.println("------------------------");
    12. Dog dog1 = new Dog("可乐",45,88,"柯基");
    13. System.out.println(dog1.getHealth());
    14. master.cure(dog1);
    15. System.out.println(dog1.getHealth());
    16. System.out.println("-------------------------");
    17. Penguin p1 = new Penguin("QQ",12,99,"公");
    18. System.out.println(p1.getHealth());
    19. master.cure(p1);
    20. System.out.println(p1.getHealth());
    21. System.out.println("-------------------");
    22. //类名 对象名 = new 子类类名();
    23. //向上转型: 父类的引用指向子类的实例
    24. Pet pet1 = new Cat("黑猫警长",45,100,"黑色");
    25. master.cure(pet1);
    26. System.out.println("------------------------");
    27. pet1 = new Dog("旺财",40,99,"哈士奇");
    28. master.cure(pet1);
    29. }
    30. }

  • 相关阅读:
    【光学】基于矩阵法和等效界面法分析光学薄
    团建游戏------特尔斐决策技术
    Java框架 Spring5--JdbcTemplate
    [山东科技大学OJ]1107 Problem A: 编写函数:Swap (I) (Append Code)
    【被面试官吊打系列】啥,你没说面试要考智力题呀 (上) ?
    【C++学习笔记】内联函数
    Docker安装Nginx
    景联文科技可为多模态语音翻译模型提供数据采集支持
    JVM_沙箱安全机制与Java安全模型
    一些有趣的VBS脚本
  • 原文地址:https://blog.csdn.net/m0_58295980/article/details/126179550