我确定这一定是重复的,但我找不到答案:
如果我有两节课:
public class BASE
{
public BASE() {};
public abstract BASE clone();
}
public class CHILD : BASE
{
public CHILD() : base() {}
public override BASE clone()
{
return new CHILD();
}
}
每次我想克隆 CHILD 类型的对象时,我都必须进行显式转换,例如:
var a = new CHILD();
CHILD b = a.clone() as CHILD;
有没有办法避免这种转换?我希望能够写:
var original = new CHILD();
BASE copy1 = original.clone();
CHILD copy2 = original.clone();
这在 C# 中可能吗?