Animal()动物类,关于多态的练习

仅做自己练习总结

1.Dog和Cat两个类都有eat();表现形式猫了饭后喵喵叫,狗吃了饭后汪汪叫,模拟人喂食的这个过程;
2.多了一个动物叫鸭子,然后也要人去喂;
问题:如果再领养XXX宠物,就需要给XXX喂食,怎么办?

思路:
这样频繁修改代码,代码可扩展性、可维护性差。使用多态优化。
1.添加Animal类,增加eat方法,让Dog,Cat,Duck继承Animal;
2.重写eat方法修改feet的方法

Animal

/*** @author Linm* @title* @date 2021/8/16 17:43*/
public class Animal {public String name;public Animal() {}public Animal(String name) {this.name = name;}public void eat() {System.out.println();}
}

Cat

/*** @author Linm* @title* @date 2021/8/16 17:23*/
public class Cat extends Animal{public Cat(String name){super(name);}@Overridepublic void eat() {System.out.println(this.name+"吃了鱼喵喵叫");}
}

Dog

/*** @author Linm* @title* @date 2021/8/16 17:27*/
public class Dog extends Animal{public Dog(String name){super(name);}@Overridepublic void eat(){System.out.println(this.name+"吃骨头汪汪叫");}
}

Duck

/*** @author Linm* @title* @date 2021/8/17 10:22*/
public class Duck extends Animal {public Duck(String name){super(name);}@Overridepublic void eat(){System.out.println(this.name+"吃了米嘎嘎叫");}
}

Person

/*** @author Linm* @title* @date 2021/8/16 17:04*/
public class Person {String name;Person(){}Person(String name){this.name = name;}public void feed(Animal animal){System.out.print(this.name+"喂了"+animal.name+",");animal.eat();}
}

测试:

/*** @author Linm* @title* @date 2021/8/16 17:29*/
public class Demo03 {public static void main(String[] args) {Animal cat =new Cat("cat");Animal dog = new Dog("dog");Animal duck = new Duck("duck");Person person = new Person("李雷");person.feed(cat);person.feed(dog);person.feed(duck);}
}

输出结果:

李雷喂了cat,cat吃了鱼喵喵叫
李雷喂了dog,dog吃骨头汪汪叫
李雷喂了duck,duck吃了米嘎嘎叫Process finished with exit code 0

Animal()动物类,关于多态的练习相关推荐

  1. 【Python作业】定义动物类Animal,...编写猫类Cat...

    三.综合设计编程 (1)定义动物类Animal,类中的属性与方法有: name:名称: time:喂食次数. 构造方法__init__:用于初始化名称(空串)和喂食次数(0): tell方法:用于输出 ...

  2. 黑马程序员—编程实现:猫和狗都会叫,但猫是喵喵的叫,狗是汪汪的叫?定义一个动物类,在动物类(animal)中有一个叫的抽象方法。 写两个子类,一个猫一个狗, * 继承自动物类,并实现相应的抽象方法。

    ------ Java培训.Android培训.iOS培训..Net培训.期待与您交流! -------package com.itheima; /*  *第9题:   * 编程实现:猫和狗都会叫,但 ...

  3. java动物类_Java创建动物类animal,以及其子类

    (1)创建动物类animal 具有属性体重 具有方法移动(move)和睡觉(sleep) 移动时输出"animal moving" 睡觉上输出"animal sleepp ...

  4. a.创建动物类Animal,在该类中创建一个成员方法cry(), 输出“动物会发出叫声”,以及一个eat()方法,输出“动物需要食物”; b.创建一个Animal子类Dog类,在该类中重写父类的成员

    创建Zoo类作为主类,在main方法中分别创建各个类对象 ,并调用各自类的cry()方法, 创建Dog类的对象赋值给Animal类的对象,然后调用cry()和eat()方法. ** a.创建动物类An ...

  5. Java动物类enjoy方法打印,面向对象编程题汇总

    在授课面向对象这一章节的时候,发现找一些比较贴近的编程题还是比较难的,从网上整理了一下,希望对需要的朋友有帮助.很多是从网上找的,如果侵犯版权请联系我! 一.类和对象 1.定义一个类Demo,其中定义 ...

  6. 使用Java定义一个动物类

    使用Java定义一个动物类 属性:name 方法:enjoy() 注:表示宠物开心后的行为 定义一个狗类继承于动物类 包含的属性:furColor 重写enjoy()方法 定义一个猫类继承与动物类 包 ...

  7. 实现父类一个动物的类, 包括成员变量名字年龄皮毛颜色,带参数构造函数,动物类有一个方法,move,打印动物是可以动的 1.《实现一个子类老鼠的类,继承动物类,老鼠类继承父类成员变量,老鼠还有个自己的属

    编写一个程序,程序包括如下内容 实现父类一个动物的类, 包括成员变量名字年龄皮毛颜色,带参数构造函数,动物类有一个方法,move,打印动物是可以动的 1.<实现一个子类老鼠的类,继承动物类,老鼠 ...

  8. C++ OJ习题练习(九)定义哺乳动物类Mammal和Dog类

    Problem Description 定义哺乳动物类Mammal,再由此派生出狗类Dog,定义一个Dog类的对象 //你的程序将被嵌在这里 int main() { Dog d;d.setAge(4 ...

  9. C++OJ题:定义哺乳动物类Mammal和Dog类

    定义哺乳动物类Mammal,再由此派生出狗类Dog,定义一个Dog类的对象 //你的程序将被嵌在这里 int main(){ Dog d;d.setAge(4);d.setWeight(12);d.s ...

最新文章

  1. Python Django设置中文语言及时区
  2. rust面向对象_面向初学者的Rust操作员综合教程
  3. 谷歌2007年上交大考试最后一题解答
  4. Python中的If,Elif和Else语句
  5. MVC中使用ajax传递json数组
  6. 分布式服务架构下的混沌工程实践
  7. 怎么用git将本地代码上传到远程服务器_git之如何把本地文件上传到远程仓库的指定位置...
  8. 组复制官方翻译六、Upgrading Group Replication
  9. 深度学习分类只有正样本_自动调制分类:一种深度学习的方法
  10. C语言的本质(7)——C语言运算符大全
  11. nginx利用try_files实现多个源
  12. 【ROM定制】Fastboot Enhance —— 适合人类使用的Fastboot + Payload.bin 解包工具箱
  13. mp c2011sp文件服务器,理光Ricoh MP C2011SP驱动
  14. Oracle ORA-01033: 错误解决办法
  15. 程序员数学(15)--分式
  16. 扇贝python骗局_北斗揭獐子岛扇贝骗局:27条采捕船数万航行数据还原轨迹
  17. 感恩节(11.28)
  18. nb_samples(采样数)转换
  19. iOS App处于后台/被杀死的状态仍可进行语言播报的实现 (适配iOS12.1 ,iOS15的本地通知功能)
  20. Oracle最新技术网站

热门文章

  1. 电脑蓝屏只有鼠标能动的解决方法
  2. Python数据分析——筛选表格数据
  3. [附源码]Java计算机毕业设计SSM个人相册管理系统
  4. Intellij IDEA查看所有断点
  5. 雾计算机和云计算机哪个好,怎么理解云计算和雾计算还有边缘计算
  6. 投资性大于游戏性 NFT游戏到底是不是门好生意
  7. C++编程-scanf的用法
  8. adb 如何连接海马模拟器
  9. android 圆角边框边框渐变,Android中用shape做渐变,边框,圆角等效果
  10. 计算机键盘无线遥控器实现方法,详解红外遥控器作为单片机输入键盘的接口原理和方法...