gpt4 book ai didi

c# - `as` 会启用多态性吗?将继承的类传递给采用基类启用多态性的方法?

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:27 25 4
gpt4 key购买 nike

首先,我将使用virtualoverride

例如,基类 A 有方法 A.do(),继承类 B 有 B.do() 覆盖 A。

如果我调用(B as A).do(),它会执行哪个do()

或者,如果有一个方法 void mymethod(A a) {a.do()},现在我用 B b 调用它; mymethod(b),它会执行b.do()吗?

最佳答案

总是会调用最顶层的覆盖方法,即 b.Do()(b as A).Do()((A )b).Do() 将调用 B.Do()

如果子类覆盖它,我不知道如何从子类调用基方法。

关于c# - `as` 会启用多态性吗?将继承的类传递给采用基类启用多态性的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7460950/

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