C# 基类中的虚函数调用基类的虚函数执行的是派生类实现的对应函数吗

编程入门 行业动态 更新时间:2024-10-10 19:17:05

C# 基类中的虚<a href=https://www.elefans.com/category/jswz/34/1771370.html style=函数调用基类的虚函数执行的是派生类实现的对应函数吗"/>

C# 基类中的虚函数调用基类的虚函数执行的是派生类实现的对应函数吗

答案 :

        是的。

        比如基类Base中有两个virtual 函数A和B,然后派生类为Derive,override了函数A记为A',override了函数B记为B',且B'之中会执行base.B的逻辑;

        在Base中,B调用了A的逻辑,那么外部在调用派生类Derive的B’的时候,B'中执行了B的逻辑,然后B会执行A'的代码!而不是基类中A的逻辑。

代码案例:

        下面是我遇到这个问题的具体案例:

        我在Unity中写一个BulletEmitter,基类中有下面一段代码:

    public virtual void tt(){Debug.Log("调用到基类的啦");}public virtual void test(){tt();}

 派生类中对应的一段代码为:

    public override void tt(){Debug.Log("调用派生类的啦!");}public override void test(){base.test();}

然后在Unity中运行,将派生类实例赋值给一个基类引用,然后调用基类引用的test()方法,得到的结果为:

故验证了以上的猜想。

更多推荐

C# 基类中的虚函数调用基类的虚函数执行的是派生类实现的对应函数吗

本文发布于:2023-11-16 12:27:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1622743.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   的是   类中   派生类

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!