我有两个类,一个是基类,第二个是派生类。想要限制对象切片,我该如何使用 C#.net 来做到这一点?
问问题
1060 次
1 回答
0
更新:
我最初的想法如下所述被认为不正确:请参阅:C++ slicing in Java / C#
原答案:
如果我理解正确,这是一个理论问题。
REDUCING
切片可以通过不在派生类中定义新成员来完成。
将派生类的实例分配给基类引用类型时会发生切片。在这种情况下,系统不知道在哪里分配新的数据类型,因为它仅在派生类中定义,而不是在基类中定义。
但是没有办法RESTRICT
,这是假设发生的,它被定义为
子类对象赋值的自然且不可避免的结果
但是,您可以声明一个类sealed
以防止限制对象切片的继承,因为它将阻止原因(继承),因此您将没有派生类按值分配给基引用。
于 2012-10-03T14:03:51.730 回答