java中多态的扩展性

news/2024/9/25 14:33:38

创建一个动物父类和狗,猫子类,当这些子类中有共同方法只是实现不同时,我们可以利用多态的扩展性

class Animal{public void eat(){System.out.println("吃饭");}public void sheep(){System.out.println("睡觉");}
}class Dog extends Animal{public void eat(){System.out.println("狗吃肉");}public void sheep(){System.out.println("狗侧着睡觉");}
}class Cat extends Animal{public void eat(){System.out.println("猫吃鱼");}public void sheep(){System.out.println("猫躺着睡");}
}

如上狗类和猫类都有相同的方法,只是实现不同,此时我们可以编写一个工具类,并在工具类中编写一个成员方法,以Animal为参数,调用其共同的方法

//可以将不同类的共同方法存放在一个单独的类方法中,这样后续创建新类时想要调用该新类方法时,不需要再去添加该类的方法
class AnimalTool{public static void Fun(Animal animal){ //以类名作为参数类型,后面传的值就相当于为:Animal animal =new Dog(多态)animal.eat();                      //用对象名去调用方法时满足编译看左,运行看右,所以会去Dog类里面去找该方法并运行animal.sheep();}
}

测试类

public class DuoTaiDemo1 {public static void main(String[] args) {//父类的引用指向子类对象Animal a1=new Dog();AnimalTool.Fun(a1);     //AnimalTool会调用自己的静态方法Fun,然后我们将a1(Dog对象)作为参数传入给Fun方法//父类的引用指向子类对象Animal c1=new Cat();AnimalTool.Fun(c1);}}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

一万字全面解析CRM的定义、分类与核心价值

1、CRM定义与分类 1.1CRM的定义 CRM,英文Customer Relationship Management的缩写,中文全称为客户关系管理。通常情况下,人们通常用CRM直接表达客户关系管理软件系统——一个以客户为中心的专门用于管理与客户关系的软件工具,以确保与客户在营销、销售、服务的每一环节上都…

串口属性中的BM延时计时器问题

天道酬勤 循序渐进 技压群雄

MUX VLAN

MUX VLAN 作用在二层,通过动态调整VLAN的划分和分配,实现了更高效的网络管理 主VLAN 扮演核心角色,负责承载主要的网络流量和服务 所有的从VLAN都与主VLAN相关联,通过主VLAN进行通信和数据传输 从VLAN 互通型从VLAN(Group VLAN) 这些VLAN内的设备可以相互通信 隔离型从VL…

module collections has no attribute Hashable PyDocx 库报错

### 项目背景在测试PyDocx代码时```python from pydocx import PyDocXhtml = PyDocX.to_html("test.docx") with项目背景 在测试PyDocx代码时 ```python from pydocx import PyDocX html = PyDocX.to_html("test.docx") with open("test.html", …

SimpleAIAgent:使用免费的glm-4-flash即可开始构建简单的AI Agent应用FI

合集 - C#(80)1.使用C#将几个Excel文件合并去重分类2023-11-152.C#使用SqlSugar操作MySQL数据库实现简单的增删改查2023-11-163.C#中的类和继承2023-11-174.C#中的virtual和override关键字2023-11-175.C#中的属性2023-11-206.C#winform中使用SQLite数据库2023-11-237.C#简化工作…

VLAN原理和配置

VLAN原理和配置 VLAN:虚拟局域网,将一个物理的局域网在逻辑上划分成多个广播域 华为交换机默认4094个VLAN 在交换机上配置VLAN,同一个VLAN内的用户可以进行二层互访,而不同VLAN 间的用户被二层隔离 VLAN帧格式 Tag用于区分不同的VLAN 没有携带Tag的帧DMAC SMAC Type Data F…

ddsadasdasd

目录理论部分 Ceph的诞生主要是为了解决以下问题: 操作部分 第一部分(虚拟机配置) 一、修改主机名 二、修改防火墙、SELinux状态 三、修改hosts文件 四、验证网络环境(请参阅 第一步、第四步) 五、配置 ceph 源 六、开始执行yum安装 七、创建目录 第二部分(部署ceph) 1…

.net 到底行不行!2000 人在线的客服系统真实屏录演示(附技术详解)

时常有朋友问我性能方面的问题,正好有一个真实客户,在线的访客数量达到了 2000 人。在争得客户同意后,我录了一个视频。升讯威在线客服系统可以在极低配置的服务器环境下,轻松应对这种情况,依然可以做到消息毫秒级送达,操作毫秒级响应。业余时间用 .net 写了一个免费的在…