我有一个界面:
public interface ICloneable<out T>
where T : ICloneable<T>
{
T Clone();
}
应该接收实现此接口的类型(如下所示)。
我可以创建一个实现它的类:
public class Class : ICloneable<Class>
{
public Class Clone() { return (Class)MemberwiseClone(); }
}
伟大的 !
但是任何人都可以创建一个实现 ICloneable<T> “错误”的类。
是否存在防止继承的方法,如下所示?(2个例子)
public class Other : ICloneable<Class>
{
public Class Clone() { return new Class(); }
}
public class Other : Class, ICloneable<Class>
{
public Class Clone() { return (Other)MemberwiseClone(); }
}
并允许继承如下所示?(任何来自 2 个例子)
public class Other : ICloneable<Other>
{
public Other Clone() { return (Other)MemberwiseClone(); }
}
public class Other : Class, ICloneable<Other>
{
public Other Clone() { return (Other)MemberwiseClone(); }
}
www说
相关分类