读书人

c#子类重写父类某个protected成员的方

发布时间: 2013-07-09 09:50:48 作者: rapoo

c#子类重写父类某个protected成员的方法问题
简述
A:B
B{
protected C c1 = new C();
}
C
{
public virtual void function()
{
}
}
问题,如何在A里重写 function()
谢谢 继承 重写 父类成员 成员函数重写 深度重写
[解决办法]
你这个不叫重写了.
你可以再弄一个C1:C 类,B 里用C,A里用C1
[解决办法]
无法重写,根本就不是继承关系。
[解决办法]
从设计上看, A继承B不继承C, 所以重写C的virtual方法做不到.
想到一个很土的解决方法. 在C中为A加入另外一个方法(或者用扩展方法), 声明与原virtual方法很接近. 然后, 在A自己的方法中, 去调用新方法, 如果B调用了老方法, 那就在A中重写B的方法.

读书人网 >C#

热点推荐