我知道之前也曾问过类似的问题,但我的情况要具体些,我希望这实际上不会重复。
我正在研究Unity项目,最后得到的类层次结构大致如下:
public class A : MonoBehaviour {
protected abstract class Nested {
public abstract void Foo();
}
protected abstract class Nested1 : Nested { /*...*/ }
protected abstract class Nested2 : Nested { /*...*/ }
protected abstract class Nested3 : Nested { /*...*/ }
}
public class B : A {
protected class SubNested1 : Nested1 { /*...*/ }
// ...
}
每个编号的A.Nested
提供了A
的一部分实现。出于上下文考虑,我应该补充一点,A
还包含一个“管理器”对象,该对象接受Nested
个对象,并且它充当某种代理,这意味着A
将运行管理器,依次运行当前的Nested
。当前的Nested
可以选择通过询问管理者来暂停执行(如果其他人赞成)。
无论如何,这3个A.Nested
仅知道如何相互通信,因此它们为子类公开了一些(除Nested.Foo
之外)抽象方法,以覆盖子类以实现正确的行为。问题是,在向经理提供信息时,我真的不知道如何将实际类型为A
的{{1}}实例正确设置为B
,而对于B.SubNested
则应保持私有
我只是想知道你是否:
A
的工作方式),和
A
当然,如果您有任何其他建议,将不胜感激。非常感谢。