掌握多态的好例子

java 多态的含义和例子经典讲解 java 的多态是java的重要的四大特性之一,多态又有多少人真正说的清楚呢?这里有最经典的例子,最生动的最鲜活的例子讲解,相信你一定能学会 立即下载

最近看了张孝祥的JAVA教程,在看到多态这一块时感觉眼前一亮,觉得他这块的一个例子对多态的理解有很大的帮助。
相信每个人在学习多态时都会遇到一些问题,初学时不是很理解多态,不明白他到底有何用,我也一样对这很苦恼,不过慢慢还是对多态有了一些理解。今天把张孝祥这个多态的例子分享给大家

这个例子是一个关于PCI卡与主板相结合响应主板的问题
大家应该明白PCI卡是什么东西吧?就是主板上插的声卡,网卡,显卡等,在主板上我们可以看到一些PCI插槽,这些插槽对应着相应的PCI卡,只有插入正确才能极其才能正常响应
我们知道不同的PCI卡制造厂商生产PCI卡时要符合一个共同标准去制造,而不同的主板制造厂也要符合一个共同的标准去制造,只有符合一个标准PCI卡才能正确响应主板
所以我们可以利用下面的代码来模拟PCI卡与主板的结合

  1. interface PCI{    //定义一个接口,这里表示一个PCI标准
  2.  void start(); //当启动时
  3.  void stop(); //当停止时
  4. }
  5. class NetworkCard implements PCI{  //一块网卡实现了PCI标准
  6.  public void start() {    //启动时响应一个方法
  7.   System.out.println("NetCard is start");
  8.   
  9.  }
  10.  public void stop() {    //关闭时响应一个方法
  11.   System.out.println("NetCard is stop");
  12.   
  13.  }
  14. }
  15. class SoundCard implements PCI{  //一块声卡实现了PCI标准
  16.  public void start() {    //启动时响应一个方法
  17.   System.out.println("SoundCard is start");
  18.   
  19.  }
  20.  public void stop() {    //关闭时响应一个方法
  21.   System.out.println( "SoundCard is Stop");
  22.   
  23.  }
  24. }
  25. class MainBorar{      //定义一个主板类,但插入网卡或者声卡时响应其对应的方法
  26.  void usepciCard(PCI p){     //但传来的是网卡的参数就调用网卡的方法,传来的是声卡的
  27.   p.start();            //就调用声卡的方法,仔细体会这块
  28.   p.stop();           
  29.  }
  30. }
  31. public class Assembler {    //定义个组装者由组装电脑的负责把不同的PCI卡插入主板上
  32.  public static void main(String[] args) {
  33.   
  34.   MainBorar mb = new MainBorar();  //组装者取一个主板来
  35.   NetworkCard nc = new NetworkCard();//组装者取一个网卡来
  36.   SoundCard sc = new SoundCard();    //组装者取一个声卡来
  37.   mb.usepciCard(nc);      //组装者把网卡插入到网卡插入相应插槽里
  38.   mb.usepciCard(sc);     //组装者把网卡插入到声卡插入相应插槽里
  39.  }
  40. }
  41. 输出结果:
  42. NetCard is start
  43. NetCard is stop
  44. SoundCard is start
  45. SoundCard is Stop

大概在阐述下这段代码,首先我们要定义一个标准,这个标准是各种PCI卡共有的标准其包括start(),stop(),所以我们的网卡(NetworkCard),声卡(SoundCard)都要去实现这个接口。
有了PCI卡我们还要有一块主板,所以我们new一块主板出来响应各种PCI卡。当然我们还需要一个组装电脑的人来组装这个主板把不同的PCI卡插入主板上,这时我们就需要new一个组装者( Assembler),然后调用mb.usepciCard(nc);mb.usepciCard(sc);
这时传入到了MainBorard方法中我们看到其参数类型是PCI,表示一个总的类型,调用mb.usepciCard(nc)就会去自动响应网卡的方法
调用mb.usepciCard(sc);就去自动去响应声卡中的方法。这里就体现了其多态性
多态是在程序运行期间判断所引用对象的实际类型,根据实际的类型调用其相应的方法。

希望大家好好体会多态带来的用途。

一个多态的例子 最近看DELPHI高手突破,把里面多态的说明,用代码实现了一下。多态性是允许用户将父对象设置成为与一个或更多的它的子对象相等的技术,赋值之后,基类 对象就可以根据当前赋值给它的派生类对象的特性以不同的方式运作。代码里面没什么注释,只是一个多态的直观体现。 立即下载

相关推荐

Cursor概述及环境配置

Cursor 是一款基于 AI 的代码编辑器,支持 VS Code 配置迁移和 Java 开发环境配置。主要功能分为 Cursor Settings(AI 相关设置)和 Editor Settings(基础编辑器设置)。用户可通过一键导入或手动方式迁移 VS Code 配置,配置包括主题、扩展和快捷键等。对于 Java 开发,需配置 JDK 和 Maven 路径,并安装 Java 扩展插件以获得完整开发体验,如代码补全、调试和 Maven 项目管理。此外,Cursor 支持汉化配置,用户可安装中文语言包切换

Knight 3558

理解多态及经典案例分析

多态与内部类 多态 即一种事物多种形态;多态实现Animal a = new Dog(),具体看的是执行的子类,最终由子类决定; 优点: 灵活性和其可扩展性; 缺点: 父类的引用指向子类对象,或者说是实例类对象赋值给父类对象,其不能引用子类的特有方法; 多态实现: 重载就 使用多态的重点 1. ...

weixin_53061888的博客 1306

告别卡顿!用AVPro Video在Unity 2022.3里流畅播放4K视频的保姆级配置流程

本文详细介绍了如何在Unity 2022.3中使用AVPro Video插件实现4K视频的流畅播放。从环境配置、插件选型到核心性能优化技巧,包括解码器设置、内存管理策略和多平台适配方案,帮助开发者彻底解决卡顿问题,提升视频播放体验。

weixin_32349561的博客 319

Java学习笔记——多态(实例详解)

多态是某一事物,在不同时刻体现出来的不同的状态 就比如猫,狗,狼都是动物,我们可以说猫是动物,说狗是动物 但我们不能说动物是猫,动物是狼。也不能说猫是狗,或者狗是狼。 上面这几点都会在多态中体现出来 多态的前提: 类之间要有继承的关系 子类要有对父类方法的重写(不重写也不会报错,但这样体现不出来多态的意义) 父类的引用变量指向子类对象 下面看一个多态的简单例子 package test.DuoTaiDemo; class Animal{ public void eat(){ S

一纸春秋的博客 1万+

开源libmodbus编译为32位和64位动态库

libmodbus 是支持Linux,Mac OS X,window 的一个开源库,支持modbus TCP和RTU 两种模式。

lemontree1945的博客 1923

Matlab在线性代数中的应用(一):向量组的线性相关性

求列向量组A的一个最大线性无关组可用命令rref(A)将A化成行最简形,其中单位向量对应的列向量即为最大线性无关组所含向量,其它列向量的坐标即为其对应向量用最大线性无关组线性表示的系数。 01 — 例1 求下列矩阵列向量组的一个最大无关组。 解:编写脚本文件如下: >>format rat a=[1,-2,-1,0,2;-2,4,2,6,-6;2,-1,0,2,3;3,3,3,3,4]; b=rref(a) 求得: b...

wenyusuran的专栏 3237

【Java】多态&综合案例

多态、接口多态的综合案例

少年你真的要止步于此嘛。 1291

SCADA|KIO程序导出变量错误处理办法

雷工在使用KingSCADA3.52软件导出KIO变量时,遇到导出Excel格式文件报错的问题,错误提示为“ADODB.Connection未找到提供程序”。经过咨询技术人员,发现该功能需要安装Office软件,并与已安装的WPS软件兼容。雷工随后安装了Office2021版本,并进行了兼容性设置。安装过程中遇到无法启动的问题,通过删除安装目录、清理注册表、使用卸载软件和重启电脑等方法解决。安装完成后,雷工在WPS中设置了与Microsoft Office2003兼容的模式,最终成功解决了导出变量时的问题。

做有价值的事,积累有价值的笔记! 957

Java 多态及实例

的。

初心不改 2248

innovus:ccopt_design流程

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?spec文件可以只创建一次,无需多次创建。2)virtual balance阶段。3)Full Balancing阶段。4)Clock Routing阶段。1)clustering阶段。

m0_61544122的博客 2483

CVE-2021-3156本地提权漏洞复现

受影响版本 sudo: 1.8.2 - 1.8.31p2 sudo: 1.9.0 - 1.9.5p1 测试 我这里是在本地centos7上进行测试。 需要目标机器上存在python编译器、目标主机出网或者能上传文件到目标主机。 以非root用户登录系统,并运行如下命令: sudoedit -s / 通常响应一个以 sudoedit: / 开头的报错,多半存在漏洞。 利用 提权脚本: https://www.o2oxy.cn/wp-content/uploa

The current road is different, love needs to distinguish between right and wrong 3782

C++多态性定义、实现以及示例详细介绍

C++多态性是面向对象程序设计中的重要概念,它允许子类对象具备父类对象的方法和属性。本文将详细介绍C++多态性的定义、实现以及示例,帮助初学者更好地理解和掌握多态性。

Python966的博客 5770

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java 多态经典例子_java多态简单例子详解

java多态简单例子:首先有一个Animal类,它有Cat,和Dog两个子类;然后在Animal中有个say方法,当Cat调用这个方法的时候输出的是“小猫喵喵喵”,当Dog调用这个方法时,输出的是“小狗汪汪汪”。【相关学习推荐:多态:多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。多态是出现...

weixin_34931370的博客 2902

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

多态的趣味例子

你和你朋友都是烟鬼, 某日,你没有带烟, 而你朋友有n种烟, 你说: 来根烟, 朋友给你一根; 你通过烟的过滤嘴, 品出为白沙烟 你再要一根, 品出这次是芙蓉王, 再要一根, 品出这次是熊猫 ... 上面描述的就是多态! 烟 a = 白沙 烟 b = 芙蓉王 烟 c = 熊猫 但发现没有, 仅仅通过"烟"基类, 引用到不同

枫桥夜泊 991

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Java的多态性及例子

多态性是面向对象编程的又一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为 对面向对象来说,多态分为编译时多态和运行时多态。其中编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不用来区分不同的方法。通过编译之后会变成两个不同的方法,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家通常说的多态性。 Java实现多态有个必要条件:继承、重写和向上转型。只有满足这个条件,开发人员才能够在同一个继承结构中使用统一的逻辑实现代码

qq_53574615的博客 1923

小白也能懂:用 “生活例子” 看透封装、继承、多态

刚学完变量、方法、循环这些基础,可能会觉得 “封装、继承、多态”,听起来很抽象。其实它们就藏在我们的日常生活里,甚至和你玩游戏、整理房间的逻辑很像。

m0_73907553的博客 929

Java之对象的多态性(使用生活中通俗的例子讲解)

Java之对象的多态性多态概念 (Java)多态(英语:polymorphism),是指计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作称之。多态也可定义为“一种将不同的特殊行为和单个泛化记号相关联的能力”。多态可分为变量多态与函数多态。变量多态是指:基类...

扬俊的小屋 3万+

关于多态的一个很形象的例子

今天有开始对多态的理解加深了,基础不好的话看别人的程序很麻烦了,要不断地测试,测试……然后想想为什么,为什么……等过了一两年再看原来的基础代码的时候友开发犯迷糊了,又开始犯迷糊,然后测试测试……回忆一下为什么这样那样……    Father{     视察(){         System.out.println("大家好好工作啊,你们辛苦了!");       

zlb6363061的专栏 838

通过例子来了解多态

一.什么是多态? 多态是在封装,继承之后又延申出新的形式,是为了解决继承实现部分的可替换,不再是只有一种实现方法,多个子类通过重写一个基类的方法,实现了不同的结果。 二.通过实现计算器来了解多态 1.计算器的类图 2.加减乘除类通过基类运算类 3.运算类与简单工厂类的参数传递来选择具体实例化的运算类 通过switch case判断分支语句来选出是加,是减法,还是乘除,这就是多态的使用方式, 三.多态的作用 根据前面的例子我们可以看出多态的作用,我们之要输入运算符号,简单工厂类就会实例化出相应的运算对

活到老学到老 531

多态的程序例子

多态可以分为变量的多态,方法的多态,类的多态.我这里强调的是类的多态,这是我们在以后的工作中经常回用到的 首先,有这样一个系统:有个学生工作从达内毕业了,作的还不错.买了辆捷达汽车.这个系统应该如何设计呢? 按照OO的思想,我们会抽象出来一个类,表示捷达汽车,其中有个run()方法 public class JD{ public void run(){        System.o

lemon_LLo的博客 1364

举例说明java的多态性_java多态的理解,java多态简单例子

你知道java多态吗?那么java多态的概念是怎样的呢?一起来看一下什么是java多态,以及java多态代码例子吧!希望可以对你有所帮助哦。一、java多态的概念多态,和名字相同,就是表示,某一时刻程序对应着多个可能的状态。在面相对象当中,分成了两种多态。1、编译时多态,主要指的就是方法的重载。2、运行时多态,它主要通过动态绑定来实现。二、java多态代码实例下面是一个非常经典的多态实例(java...

weixin_39866963的博客 935

一个简单例子理解java多态

发生多态要有三个前提条件 继承 覆盖 声明的变量类型是父类类型,但实例则指向子类实例 举例: public class Figure { //绘制几何图形方法 public void onDraw() { System.out.println("绘制Figure..."); } } //几何图形三角形 public class Triangle extends Figu...

山鬼谣弋痕夕的博客 1192

理解java中的多态,多态的例子

当面临一个问题,有多种实现算途径的时候,要想到java中的核心:多态。 多态的思想: 概括地讲,在运用父类引用指向子类对象的情况下,基本上就用到了多态了。(当父类引用指向子类对象时,调用的方法和成员变量,当子类进行方法重写或者变量与父类中的变量同名时,调用的都是子类的,否则,会调用父类中的) 最简单的多态应该是继承: public class Tank {

漂泊小柒的专栏 1万+

java多态简单例子 one

java多态简单例子 one 2011年10月16日 22:59:15 cyq1028 阅读数:59276 标签: javafunctionclassstring扩展   /* 对象的多态性:动物 x = new 猫(); 函数的多态性:函数重载、重写   1、多态的体现 父类的引用指向了自己的子类对象 父类的引用也可以接收自己的对...

u012602304的博客 539

Java多态是什么,怎么实现的,多态例子代码

目录 子类型和子类 多态分两种 多态的用途 多态的转型 运行时多态的例子 多态实现的机制 JVM 部分内容摘自: Java多态的实现机制是什么,写得非常好!_Java技术栈的博客-优快云博客 子类型和子类 子类型(Subtype)这个词和子类(Subclass)的区别,简单地说,只要是A类运用了extends关键字实现了对B类的继承,那么我们就可以说Class A是Class B的子类,子类是一个语法层面上的词,只要满足继承的语法,就存在子类关系。 子类型比子类有更严格的要求,它不仅

trigger的博客 684
上一篇: 正则表达式的规则
下一篇: JAVA IO详解
不善^
博客等级 码龄18年 635粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值