我有一个类(SuperClass(被使用。出于自己的目的,我设计了一个子类,它为我添加了额外的信息。
class SuperClass{
}
class SubClass: SuperClass{
}
现在我的问题是,在运行时我想将超类的实例转换为子类的实例。对它进行一些操作,然后返回超类。所以我的问题是,如何才能真正将 SueprClass 的实例转换为 SubClass 的实例?
SubClass newItem = superClass as SubClass;
如果您正在使用的实例被初始化为 SuperClass
,则无法神奇地将其转换为SubClass
的实例 - 这会将整个类型系统抛出窗口。
但是,您可以添加一种将SuperClass
转换为SubClass
的方法,但您必须为此编写代码。
一种方法是向SubClass
添加一个构造函数,该构造函数接收SuperClass
的实例以及SubClass
所需的任何其他信息(如果它不需要其他信息,也许您最好使用扩展方法而不是继承(。
另一种方法是编写显式转换运算符。