【发布时间】:2011-12-22 20:35:35
【问题描述】:
所以我用基类DisplayObject 设置了这个系统。
它有一个Render 方法和一个其他DisplayObjects 的列表作为它的孩子。它还包含有关各种矩阵变换的数据,但我不包含有关实际绘图的数据。这就是为什么Render 方法是虚拟的。
然后我有 2 节课。 ColoredShape 和 TexturedShape 都继承自 DisplayObject 并使用以
Render 方法
base.Render();
然后做绘图代码。
我现在想要的是在父对象的渲染完成之后对对象的所有子对象调用Render。所以这是我的问题。如果我这样做了
foreach (var child in Children) child.Render();
在DisplayObject 类中的Render 方法的末尾,它将在覆盖之前执行,因为它是base.Render() 调用的一部分,如果我将该代码放在子类中,则仅DisplayObject 就失去了该功能,它会强制从它继承的所有未来子类手动实现该功能。
【问题讨论】:
标签: c# oop inheritance virtual