Product Design, Manufacturing & Innovation Resources
家 » 多态性(编程)

多态性(编程)

1967
  • Christopher Strachey
用代码片段演示多态性的计算机编程工作区。.

(图片仅供参考)

多态性(源自希腊语,意为“多种形态”)允许将不同类的对象视为同一超类的对象。它支持单一接口,例如…… 方法 名称,用于指代一类通用的操作。具体操作由运行时对象的确切类型决定。这通常通过方法重写来实现。

多态是一种强大的概念,它允许编写灵活且解耦的代码。最常见的形式是 面向对象编程 子类型多态性是通过继承和方法重写实现的。当子类为其父类中已定义的方法提供特定实现时,称为方法重写。父类类型的变量可以引用其任何子类的对象。当对该变量调用方法时,执行的是对象实际所属类的方法版本,而不是变量所属类型的版本。此决定在运行时做出,这个过程称为动态分派或后期绑定。

例如,考虑一个名为“Shape”的超类,它有一个方法“calculateArea()”。像“Circle”和“Rectangle”这样的子类可以继承自“Shape”,并提供它们各自特定的“calculateArea()”实现。程序可以拥有一个“Shape”对象列表,其中包含“Circle”和“Rectangle”实例。当遍历该列表并对每个元素调用“calculateArea()”时,系统会自动为每个形状使用正确的公式。这样就无需使用冗长的“if-else”或“switch”语句来检查每个对象的类型,从而编写出更简洁、更易于扩展的代码。无需修改处理新形状的代码,即可向系统中添加新的形状。

UNESCO Nomenclature: 1203
- 计算机科学

类型

抽象系统

中断

递增

用法

广泛使用

前体

  • C 语言中的函数指针概念
  • 通用编程概念
  • 继承,提供子类型多态性所需的类层次结构
  • 需要灵活且可扩展的软件系统

应用程序

  • 使用单个 `draw()` 方法调用绘制不同的形状(例如“圆形”、“正方形”)。
  • 使用通用的 `print()` 函数处理各种文档类型(`pdf`、`word`)。
  • 实施 user interface 事件处理程序
  • 可以容纳不同但相关类型的对象的通用集合
  • 依赖注入框架

专利:

NA

潜在创新理念

  • 使用通用接口的可插入数据序列化格式(例如 json、xml、protobuf)
  • 操作系统中针对不同硬件的通用设备驱动程序
  • 可互换算法的策略设计模式
  • 图形引擎中处理不同材质类型的通用渲染管道
  • 处理各种类型网络请求的中间件系统
  • 处理不同支付方式(信用卡、PayPal、加密货币)的金融交易处理器
  • 可以更换不同用户界面组件的 A/B 测试框架
  • 可以连接到各种数据源(数据库、API、文件)的数据处理管道
  • 可以通过统一 API 操作不同类型执行器的机器人控制系统
  • 安全框架中可互换的加密算法提供程序
相关概念:多态性、重写、动态分发、后期绑定、子类型、接口、抽象、面向对象编程、方法重写、运行时。

历史背景

多态性(编程)

1956
1960
1967
1967
1970
1970
1970
1953
1960
1960
1967
1970
1970
1970
1970

(如果日期未知或不相关,例如“流体力学”,则提供其显著出现的近似估计)

第十年 周年纪念日

只有注册会员才能免费获得 100% 的全尺寸图片和下载。.

> 登录 <