1、创建动物类

package c02.s01.p05;/*** 功能:动物类* 作者:hf* 日期:2022年05月05日*/
public class Animal {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void speak() {System.out.println(name + "今年"  + age + "岁了。");}public void move() {System.out.println(name + "在动……");}public void eat() {System.out.println(name + "在吃……");}@Overridepublic String toString() {return "Animal{" +"name='" + name + '\'' +", age=" + age +'}';}
}

2、继承动物类,创建猫类

package c02.s01.p05;/*** 功能:猫类* 作者:hf* 日期:2022年05月05日*/
public class Cat extends Animal {/*** 子类改写父类的同名同参方法(纵向多态)*/@Overridepublic void move() {System.out.println("猫咪[" + getName() + "]在走路。");}/*** 子类改写父类的同名同参方法(纵向多态)*/@Overridepublic void eat() {System.out.println("猫咪[" + getName() + "]爱吃鱼虾。");}/*** 子类添加新的方法*/public void play() {System.out.println("猫咪[" + getName() + "]在玩老鼠。");}
}

3、继承动物类,创建狗类

package c02.s01.p05;/*** 功能:猫类* 作者:hf* 日期:2022年05月05日*/
public class Dog extends Animal {/*** 子类改写父类的同名同参方法(纵向多态)*/@Overridepublic void move() {System.out.println("狗崽[" + getName() + "]在蹦跳。");}/*** 子类改写父类的同名同参方法(纵向多态)*/@Overridepublic void eat() {System.out.println("狗崽[" + getName() + "]爱吃骨头。");}/*** 子类添加新的方法*/public void play() {System.out.println("狗崽[" + getName() + "]在玩飞盘。");}
}

4、继承动物类,创建鸟类

package c02.s01.p05;/*** 功能:鸟类* 作者:hf* 日期:2022年05月05日*/
public class Bird extends Animal {/*** 子类改写父类的同名同参方法(纵向多态)*/@Overridepublic void move() {System.out.println("鸟儿[" + getName() + "]在飞翔。");}/*** 子类改写父类的同名同参方法(纵向多态)*/@Overridepublic void eat() {System.out.println("鸟儿[" + getName() + "]爱吃小虫。");}/*** 子类添加新的方法*/public void play() {System.out.println("鸟儿[" + getName() + "]在玩羽毛。");}
}

5、创建学生类

package c02.s01.p05;/*** 功能:* 作者:hf* 日期:2022年05月05日*/
public class Student {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public void feed(Animal animal) {animal.speak(); // 子类继承父类的方法animal.move(); // 体现多态(子类改写了父类的同名同参方法)animal.eat(); // 体现多态(子类改写了父类的同名同参方法)if (animal instanceof Cat) { // 判断是否是猫实例System.out.println(name + "喂养猫咪[" + animal.getName() + "]。");Cat cat = (Cat) animal; // Animal向下转型为Catcat.play();} else if (animal instanceof Dog) { // 判断是否是狗实例System.out.println(name + "喂养狗崽[" + animal.getName() + "]。");Dog dog = (Dog) animal; // Animal向下转型为Dogdog.play();} else if (animal instanceof Bird) { // 判断是否是鸟实例System.out.println(name + "喂养鸟儿[" + animal.getName() + "]。");Bird bird = (Bird) animal; // Animal向下转型为Birdbird.play();} else {System.out.println(name + "喂养动物[" + animal.getName() + "]。");}}
}

6、创建测试学生类

package c02.s01.p05;/*** 功能:* 作者:hf* 日期:2022年05月05日*/
public class TestStudent {public static void main(String[] args) {// 创建学生对象Student student = new Student();student.setName("张三丰");// 创建第一个动物Animal animal1 = new Cat();animal1.setName("小花");animal1.setAge(4);// 创建第二个动物Animal animal2 = new Dog();animal2.setName("大黄");animal2.setAge(5);// 创建第三个动物Animal animal3 = new Bird();animal3.setName("笨笨");animal3.setAge(3);// 调用学生对象的喂养方法,传入不同的动物对象student.feed(animal1);student.feed(animal2);student.feed(animal3);}
}

7、运行程序,查看结果

java学生喂养宠物相关推荐

  1. 第一篇博客,java学生管理系统(挑战全网最全)

    java学生信息管理系统,(课设必备),附有源码和简版链接 博主虽然技术不高,但是系统写的真的是没话说,留着开学java课设用了. 直接转载链接了,查看系统入口 https://blog.csdn.n ...

  2. JAVA 学生信息管理系统

    java 学生信息管理系统 主要使用的增删改查操作 首先,需要先建一个文件(点击左上角File,选择第一个New里的第一个Java Project) 然后再建一个Javabean包,在这个包里新建一个 ...

  3. JAVA学生信息管理系统IO流版

    JAVA学生信息管理系统IO流版 1. Student类 public class Student implements Serializable{//学号private int sid;//姓名pr ...

  4. 基于JAVA学生用品采购系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA学生用品采购系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA学生用品采购系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  5. 【附源码】计算机毕业设计JAVA学生公寓管理系统

    [附源码]计算机毕业设计JAVA学生公寓管理系统 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Inte ...

  6. java课程管理系统_基于JAVA学生课程管理系统.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava 基于JAVA学生课程管理系统.doc62页 本文档一共 ...

  7. 计算机毕业设计Java学生网上请假系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java学生网上请假系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java学生网上请假系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  8. 计算机毕业设计Java学生心理健康信息咨询系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java学生心理健康信息咨询系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java学生心理健康信息咨询系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目 ...

  9. 基于JAVA学生健康管理系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA学生健康管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA学生健康管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

最新文章

  1. pygame做一个简单的打字游戏
  2. SpringMVC获取请求参数-集合类型
  3. spring-cloud 学习三 服务提供者
  4. quartus状态机生成_生成器作为(快速失败)状态机
  5. 系统启动 之 Linux系统启动概述(1)
  6. 30 | 答疑文章(二):用动态的观点看加锁
  7. 2020第一本书《自私的基因》
  8. 计算机自检报错无法开机,电脑开机不自检无显示是怎么回事?
  9. MoveIt2——4.机器人模型和机器人状态
  10. 移动端框架之mand-mobile
  11. CS229 --Lecture1 Introduction
  12. 传奇脚本显示服务器开区时间代码,GOM引擎该地图只限新区开放方法,传奇开区时设置老区不能进脚本...
  13. linux怎么下载安装软件
  14. gsoc 任务_黑客#GSOC:如何获得现实生活经验并支持开源
  15. Windows10 WIFI蓝牙图标消失,网卡驱动出现感叹号等无法上网的情况解决方案
  16. 古典密码-凯撒加密和解密
  17. 01入门-ThreadLocal详解-并发编程(Java)
  18. FDTD Solutions v2.2 1CD+ASAP
  19. 阿里云登录界面无法输入账号及密码的解决方法
  20. 计算机科学与技术专业软考考什么,为什么大家都考软件水平考试_为什么大家都考软考_软考到底有什么用_课课家...

热门文章

  1. 3.ERP选型——四点禁忌爱情攻略
  2. 如果一笔生意听起来好得让人难以置信
  3. JavaWeb(4)JavaScript高级
  4. string数据库使用和实践第一部分string数据库介绍
  5. 在Ubuntu18.04.2LTS上安装电子书软件
  6. 外贸独立站SEO排名
  7. Linux测试工具httpd-tools
  8. Python炫技操作:花式导包的八种方法
  9. UCK Network 以用户至上、体验为王为核心, 打造完善的综合体验平台
  10. rtx 加密机制_rtx腾讯通组织架构(结构)不显示的解决办法