class BaseClass : ICloneable
{
public object Clone()
{
return this.MemberwiseClone();
}
}
class DeriverClass : BaseClass
{
}
如上有两个类BaseClass 和DeriverClass 怎么保障派生类一定重写克隆函数
方法如下
class BaseClass : ICloneable
{
public virtual object Clone()
{
return this.MemberwiseClone();
}
}
class DeriverClass : BaseClass
{
public override object Clone()
{
return base.Clone();
}
}
其实就是接口的实现可以是任意函数如下的更加好
abstract class BaseClass : ICloneable
{
public abstract object Clone();
}
class DeriverClass : BaseClass
{
public override object Clone()
{
return this.MemberwiseClone();
}
}
从上可以看出接口是不能被继承的 但是接口的实现函数可以任意有效函数