看上面的代码:F2 在 C1、C2 中均有,F3 只在 C1 中有。
调用代码:
结果是:F1-3 和 F1-1。也就是说:
由此看来 override 是不具有传递性的,他只对其基类负责(只覆盖基类的),至于其基类的基类,他管不了那么远。
如果 C2 中 F2 通过 base.F2() 来调用,那么它也不会被覆盖,因为这等效于调用 C1 的 F2 方法。
可以验证
如上代码,结果是:F1-1、F1-3,说明 C1 类型时,覆盖并没有起作用,因为它没有调用到 C3 的 F1。
创建于2005年 渝ICP备05010272号-1
电邮:cftea@126.com