下面的代码:向下转换安全
Base b = new Derived(); // Upcasting
// Some actions
Derived d = (Derived)b; // Downcasting
据我了解的引用类似的模板,通过它,你正在寻找一些内存块。上传只是缩小了模板,因此您无法访问添加了Derived类的成员。而这里的下游将再次扩大该模板。
现在的问题是: 由于没有引用类型的派生部分保留,只是基地。在发生向下转换时,GC的某些动作或活动是否会擦除或覆盖用于包含派生成员的内存块?换句话说,下倾Derived d = (Derived)b
失败?
它可以,但只有'b'不是'派生'。 – Tony
谢谢,我知道。但是Derived的类型部分可能会丢失,因为没有引用它只保留了Base类型。 –