我有一個接口層次結構,我試圖使用適當的.net xml註釋文檔。我有一個層次結構中的所有接口共享的方法,我在頂層聲明,我想對子接口給出更具體的評論。我可以在C#中的子接口中覆蓋父接口方法嗎?
換句話說,這樣的事情:
public interface IAnimal
{
/// <summary>Returns a string often spoken by this animal.</summary>
string speak();
}
public interface IDog : IAnimal
{
/// <summary>Returns a string representation of some barking noise.</summary>
string speak();
}
public interface IDuck : IAnimal
{
/// <summary>Returns a string representation of some quacking noise.</summary>
string speak();
}
當我嘗試編譯此我得到「方法隱藏」我敢肯定,我不想做的警告。嘗試在方法前面插入「覆蓋」和「虛擬」關鍵字會產生錯誤而不是警告。有沒有什麼辦法可以得到不同的描述來顯示子接口上的方法而不破壞類型之間的繼承關係?
如果您的界面被正確定義,這應該沒有必要。 「狗」用吠聲說話,而「鴨子」用嘎嘎聲講話就是那種被實現覆蓋的東西,而不是接口。基礎的接口描述應該適用於所有派生的接口,否則你正在改變操作的語義(這應該意味着引入一個新的接口)。 – 2014-12-06 20:28:13
我有一種感覺,人們會這樣說,在我的情況下,基本接口的描述確實適用於子接口,但它非常抽象。我希望子接口描述更具體。 – Ghost314 2014-12-06 20:35:39