從某種程度上來說,這更像是一個思考練習,而不是一個真正的問題,因爲我沒有足夠的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