[进阶]面向对象之多态(练习)

需求:
在这里插入图片描述

//父类animal
package polymorphism.Test;public abstract class Animal {private int age;private String color;public Animal() {}public Animal(int age, String color) {this.age = age;this.color = color;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public void eat(String something){System.out.println("动物再吃"+something);}}
package polymorphism.Test;public class Dog extends Animal{public Dog() {}public Dog(int age, String color) {super(age, color);}@Overridepublic void eat(String something) {System.out.println(getAge()+"岁的"+getColor()+"颜色的狗两只前腿死死的抱住"+something+"猛吃");}
}
package polymorphism.Test;public class Cat extends Animal{public Cat() {}public Cat(int age, String color) {super(age, color);}@Overridepublic void eat(String something){System.out.println(getAge()+"岁的"+getColor()+"颜色的猫咪眯着眼睛侧着头吃"+something);}public void catchMouse(){System.out.println("猫抓老鼠");}
}
package polymorphism.Test;public class Person {private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = 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 keepPet(Dog dog,String something){//System.out.println("年龄为"+getAge()+"岁的"+name+"养了一只"//+dog.getColor()+"颜色的"+dog.getAge()+"岁的狗");//dog.eat(something);//public void keepPet(Cat cat,String something){//System.out.println("年龄为"+getAge()+"岁的"+name+"养了一只"//+cat.getColor()+"颜色的"+cat.getAge()+"岁的猫");//cat.eat(something);//}public void keepPet(Animal a,String something){if(a instanceof Dog d){System.out.println("年龄为"+getAge()+"岁的"+name+"养了一只"+a.getColor()+"颜色的"+a.getAge()+"岁的狗");d.eat(something);}else if (a instanceof Cat c){System.out.println("年龄为"+getAge()+"岁的"+name+"养了一只"+a.getColor()+"颜色的"+a.getAge()+"岁的猫");c.eat(something);}else {System.out.println("没有这种动物");}}}

测试类

package polymorphism.Test;public class Test {public static void main(String[] args) {/* Person p1 = new Person("老王",30);Dog d = new Dog(2,"黑");p1.keepPet(d,"骨头");Person p2 = new Person("老李",25);Cat c = new Cat(3,"灰");p2.keepPet(c,"鱼");*/Person p = new Person("老王",30);Dog d = new Dog(2,"黑");Cat c = new Cat(3,"灰");p.keepPet(d,"骨头");p.keepPet(c,"鱼");}
}

运行结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/424006.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaSE系列】反射机制

目录 前言 一、概述 二、获取Class对象 三、反射构造方法 1. 获取构造方法 2. 获取修饰符、名称和形参 3. 创建对象 四、反射成员变量 1. 获取成员变量 2. 获取修饰符、名称和类型 3. 赋值/获取值 五、 反射成员方法 1. 获取成员方法 2. 获取修饰符、形参、返回值…

远程访问电脑共享文件

远程访问电脑共享文件,可以通过多种方法实现,每种方法都有其特点和适用场景。以下是一些常见的方法及其步骤: 一、使用Microsoft远程桌面 启用远程桌面: 在目标电脑上,打开“开始”菜单,选择“设置”>“…

【网络安全】PHP配置注入漏洞

未经许可,不得转载。 文章目录 正文 正文 前提:通过探测等方式发现某个 PHP 文件存在 PHPRC 参数: curl "https://xxx.com/about.php?PHPRC/dev/fd/0" --data-binary auto_prepend_file"/etc/passwd"PHPRC 用于指定 P…

CTF——简单的《WEB》

文章目录 一、WEB1、easysql2、baby_web3、baby_sql4、upload_easy5、easygame拓展1.1拓展1.2 6、ht_ssti7、包容乃大 一、WEB 1、easysql 题目描述: sql注入漏洞 1.常用的sql注入测试语句 2.sql注入bypass 解题思路 这边提示基本给的也很完整的,不…

NFT Insider #147:Sandbox 人物化身九月奖励上线;Catizen 付费用户突破百万

市场数据 加密艺术及收藏品新闻 Doodles 动画特别剧《Dullsville and The Doodleverse》在多伦多国际电影节首映 Doodles 最近在多伦多国际电影节(TIFF)首映了其动画特别剧《Dullsville and The Doodleverse》,这是该品牌的一个重要里程碑。…

无人机几种常见的避障系统!!!

1. 视觉避障系统 工作原理: 视觉避障系统通过安装在无人机上的摄像头捕捉周围环境的图像,利用计算机视觉技术对图像进行处理和分析,提取出障碍物的信息。 通过对障碍物的识别和分类,无人机可以判断出障碍物的性质和危险程度&am…

鸿蒙开发基础

页面跳转 了解代码初始结构 /*** 装饰器:用于装饰类、结构、方法以及变量,并赋予其特殊的含义。* Entry:表示该自定义组件为入口组件 * Component:表示自定义组件* State:表示组件中的状态变量,状态变量变…

抓机遇,创发展︱2025 第十二届广州国际汽车零部件加工技术及汽车模具展览会,零部件国产浪潮不可阻挡

抓机遇,创发展︱2025 第十二届广州国际汽车零部件加工技术及汽车模具展览会,零部件国产浪潮不可阻挡 汽车零部件行业是汽车工业发展的基础,是支撑汽车工业持续稳步发展前提条件。随着经济全球化和市场一体化进程的推进,汽车零部件…

YOLOv5改进 | 模块缝合 | C3 融合Self-Calibrated Convolutions丰富特征图【CVPR2020】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv5入门 改…

37拼购:电商新风尚,共享双赢的购物革命

随着2024年电商市场的日益繁荣,商品海洋中的同质化问题愈发严峻,消费者在茫茫商海中寻觅独特价值的难度陡增。在此背景下,一种名为“37悦享拼”的创新电商模式横空出世,它巧妙融合了私域社交与电商精髓,旨在打破传统壁…

【Go】-Gin框架

目录 Gin框架简介 简单示例 Gin渲染 HTML渲染 自定义模板函数 静态文件处理 使用模板继承 JSON渲染和XML渲染 获取参数 获取querystring参数 获取form参数 获取Path参数 c.Params.Get c.Params() 参数绑定 文件上传 单个文件上传 参数 多个文件上传 重定向…

无人机应用新纪元:图形工作站配置推荐与硬件解析

低空经济作为国家新兴的战略性产业,正逐步成为经济高质量发展的新动力。据统计,2023年中国低空经济规模达到5059.5亿元,增速为33.8%,预计到2026年有望突破万亿元大关。政府对低空经济的发展高度重视,不仅出台了相关法规…

Ubuntu22.04系统安装opencv步骤简述及问题解决方法

前言 opencv是一个功能强大、开源且跨平台的计算机视觉库,适用于多种编程语言和操作系统,能够帮助开发者构建各种视觉项目。其模块众多,提供了诸多功能,能够进行图像处理、视频处理等等。比如:Highgui模块提供图像用户…

OSSEC搭建与环境配置Ubuntu

尝试使用Ubuntu配置了OSSEC,碰见很多问题并解决了,发表博客让后来者不要踩那么多坑 环境 : server :Ubuntu22.04 64位 内存4GB 处理器4 硬盘60G agent: 1.Windows11 64位 2.Ubuntu22.04 64位 服务端配置 一、配置安装依赖项&…

电源模块测试系统中都可以定制哪些内容?

在电源测试系统中,可以定制的内容相当广泛,以满足不同客户、不同应用场景下的特定需求。以下是一些常见的可定制内容: 1. 测试项目 对于电源模块的基础测试项目而言,一般都无需定制基础测试项目,因为电源模块测试的基…

(k8s)kubernetes 挂载 minio csi 的方式(pod挂载pvc存在csi驱动问题,挂载不上)

一、安装Minio(Minio分布式集群搭建部署_minio集群最少几台-CSDN博客) 生成accessKeyID和secretAccessKey: 二、安装csi-s3插件(在k8s集群上) 首先我们把插件的yaml文件都下载下来,为了保证版本测试的一致性,我们下载…

idea中java及java web项目的常见问题

1、乱码问题,主要有几处地方,需要检查。 ①确保文件编码,其实主要就是在idea启动文件中,增加了 -Dfile.encodingUTF-8的设置 ②编辑器默认编码,都改为UTF-8 ③Tomcat的运行配置,编码也改为UTF-8,同样使用…

Excel文档的读取(1)

熟悉使用Excel的同学应该都知道,在单个Excel表格里想要分商品计算总销售额,使用数据透视表也可以非常快速方便的获得结果。但当有非常大量的Excel文件需要处理时,每一个Excel文件单独去做数据透视也会消耗大量的时间。就算使用Power Query这样…

TCP套接字【网络】

文章目录 代码 创建套接字:(TCP/UDP) int socket(int domain, int type, int protocol);inet_aton,将字符串IP转换成整数IP int inet_aton(const char *cp, struct in_addr *inp);监听套接字:(TCP,服务器…

Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 Vue3)

Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 & Vue3) 在对于二维码生成中有许多组件,下面介绍关于自定义比较高的vue-qr组件,能自定义设置背景颜色、背景图片、背景Gif图、实点和空白区的颜色、中心Logo的图片和边距。 一…