【发布时间】:2018-04-19 16:36:21
【问题描述】:
我的父类是:
public Class Parent
{
protected void foo()
{
bar();
}
protected void bar()
{
thing_a();
}
}
我的孩子班:
public class Child : Parent
{
protected void bar()
{
thing_b();
}
}
有没有什么办法,当从子类调用 foo 时,会调用 Child 的 bar 而不是 Parent 的?
一些上下文,尽管我怀疑它是否重要: “foo”是 Unity 的 FixedUpdate,“bar”只是我需要为孩子更改的一些功能,但由于我在 FixedUpdate 上做了其他事情,我不想复制整个方法只是为了更改那一行。
【问题讨论】:
-
查找
virtual、abstract和override。你需要一个基本的 c# 教程 -
使 foo 成为虚拟,您的父类抽象和/或将委托传递给另一个类中的方法,例如模板模式,并让该方法执行并处理不同的条件委托。