我在使用第三方庫時發現了這種行爲,我需要隱藏和更改其中一種方法。爲什麼一個子類需要實現一個父母界面來隱藏C#中父母方法之一?
我有以下設置:
interface IBaseInterface
{
string MethodToHide();
}
class BaseClass : IBaseInterface
{
public string MethodToHide()
{
return "BaseClass";
}
}
class ChildClass : BaseClass
{
new public string MethodToHide()
{
return "ChildClass";
}
}
爲什麼當我運行以下命令:
var i = (IBaseInterface) (new ChildClass());
Console.WriteLine(i.MethodToHide());
輸出
BaseClass的
,但改變ChildClass簽名
class ChildClass : BaseClass, IBaseInterface
時,輸出爲
ChildClass
爲什麼我需要明確指定接口的BaseClass的方法,通過隱藏ChildClass?
hidden!=被覆蓋 – Greg 2011-03-11 18:43:28