查看源代码,我发现了这段代码:
Recipe silk = new Recipe(((Item)silk).itemID)
其中 Silk 类 - 使用 ItemID 属性继承 Item 类。
所以我对构造(项目)丝绸感兴趣,根据我的假设,它会从孩子那里返回一个父类的实例。这个设计的名称是什么,它实际上是做什么的?
查看源代码,我发现了这段代码:
Recipe silk = new Recipe(((Item)silk).itemID)
其中 Silk 类 - 使用 ItemID 属性继承 Item 类。
所以我对构造(项目)丝绸感兴趣,根据我的假设,它会从孩子那里返回一个父类的实例。这个设计的名称是什么,它实际上是做什么的?
一个类的实例,即一个对象,原样
Silk,并且仍然存在。不对对象执行任何操作。此操作称为类型转换,更具体地说,是类型转换为父级或向上转换。此处仅更改对象引用的类型。
这一切都基于OOP“继承”的原则。
例如,有一个基类及其后继类。
例如,如果您创建
你可以这样做(向上)
在这种情况下,反向操作(向下转换)是可能的。
但是这样的操作是不可能的,并且会
InvalidCastException在执行过程中发出。这一切都是因为变量所指的对象的真实类型在这里很重要。我再说一遍,对象本身什么也没有发生,它保持不变。