gpt4 book ai didi

c# - 多态和虚方法

转载 作者:行者123 更新时间:2023-11-30 12:24:57 25 4
gpt4 key购买 nike

假设Vehicle 类包含一个名为CalculateMaxSpeed虚拟 方法。假设 MotorVehicleAutomobile 类都覆盖此方法。哪个类定义了执行后面代码中的第二条语句时调用的方法?

Vehicle (grandparent of Automobile) > MotorVehicle (parent of Auatomobile) > Automobile

MotorVehicle car = new Automobile();
car.CalculateMaxSpeed();

在我看来它应该是 Automobile#CalculateMaxSpeed 但我担心它可以是 MotorVehicle#CalculateMaxSpeed 因为 MotorVehicle 是包含 Automobile 的实例。请有人详细说明。

最佳答案

你的理解是正确的。 Automobile#CalculateMaxSpeed 将被调用。这称为运行时多态性

虽然汽车对象的类型是MotorVehicle,但在运行时,对象的内容将被识别为服务类类型,即Automobile。因此,该方法的调用不是基于对象的类型,而是基于对象的内容。

类型将由编译器使用,但调用方法的实际决定是在运行时根据对象的内容做出的

关于c# - 多态和虚方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32536629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com