从某种程度上来说,这更像是一个思考练习,而不是一个真正的问题,因为我没有足够的CustomFS类受到仅使用复制粘贴的困扰。但我想知道是否有更好的方法。“heritance”覆盖函数
假设我有几类CustomFS
,CustomFS2
,等等,所有这些都来自FS
,FS2
等FS/FS2 /等继承。全部从FSG
继承,它具有功能GetStuff
。假设我没有修改FS和FSG的能力,我如何在只有一个CustomFS类的FS/FS2许多中重写某个特定函数,并且不用FS构造CustomFS并为所有FS的方法添加包装函数customFS。
当前的战略:复制/粘贴:
class CustomFS : FS
{
protected override int GetStuff(int x)
{
int retval = base.GetStuff(x);
return retval + 1;
}
}
class CustomFS2 : FS2
{
protected override int GetStuff(int x)
{
int retval = base.GetStuff(x);
return retval + 1;
}
}
注意:重载函数并不足够复杂以至于无法添加额外的间接层。 – Brian 2009-12-12 12:52:04