You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供Inclusion(包含多态)的实现示例以辅助理解

包含多态(Inclusion Polymorphism)的示例说明

你提到的包含多态其实就是我们常说的「子类型多态」,它是基于继承/接口实现的多态形式——核心逻辑是:如果一个类是另一个类的子类型,那么子类型的对象可以被当作父类型的对象来使用,并且在调用方法时,会执行子类型的具体实现。

我用Python写个简单的示例帮你理解:

首先定义一个父类Vehicle(交通工具),它有一个通用的move方法:

class Vehicle:
    def move(self):
        print("交通工具正在移动")

然后创建两个子类Car(汽车)和Bicycle(自行车),分别重写move方法,实现各自的移动逻辑:

class Car(Vehicle):
    def move(self):
        print("汽车靠发动机驱动,在公路上飞驰")

class Bicycle(Vehicle):
    def move(self):
        print("自行车靠人力踩踏,慢悠悠前进")

接下来写一个通用函数,接收Vehicle类型的参数,调用它的move方法:

def start_move(vehicle: Vehicle):
    vehicle.move()

现在我们测试一下:

my_car = Car()
my_bike = Bicycle()

start_move(my_car)   # 输出:汽车靠发动机驱动,在公路上飞驰
start_move(my_bike)  # 输出:自行车靠人力踩踏,慢悠悠前进

为什么这是包含多态?

  • Car和Bicycle都是Vehicle的子类型,它们都继承自Vehicle;
  • 当我们把Car或Bicycle对象传给start_move函数时,函数只知道参数是Vehicle类型,但实际执行的是子类重写后的move方法;
  • 子类型(Car/Bicycle)被包含在父类型(Vehicle)的范畴内,所以可以无缝替换父类型使用,这就是「包含多态」的由来。

内容的提问来源于stack exchange,提问作者moradov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:50:05