我的C#風扇,但我想這是一個普遍的問題OOP:重新指定已經繼承的接口是否有意義?
在下面顯示的代碼,有沒有重新指定class B
實現interface I
任何一點?
interface I { }
class A : I { }
class B : A, I { }
至於我可以告訴答案是否定的,除非是可讀性,如果一個類實現了許多接口和你想聲明的類時強調某一個。
我的C#風扇,但我想這是一個普遍的問題OOP:重新指定已經繼承的接口是否有意義?
在下面顯示的代碼,有沒有重新指定class B
實現interface I
任何一點?
interface I { }
class A : I { }
class B : A, I { }
至於我可以告訴答案是否定的,除非是可讀性,如果一個類實現了許多接口和你想聲明的類時強調某一個。
不,沒有。事實上,當你繼續重新聲明接口時,特別是當繼承鏈變大時,它會變得有點混亂。如果你想強調一個類實現了一個重要的接口,可能有一種方法是在類的註釋中的彙總字段中添加信息,以顯示該工具提示。
沒有沒有比也許是仿製藥的限制,即其他點(可能是錯誤的語法,但你明白了吧 - 我認爲(從內存)的限制有關於繼承和運用約束某些特性)
public T MethodName(T gen) where T : I
{
}
不,事實上像ReSharper這樣的工具會告訴你,I
的第二個實現是多餘的。
我認爲這也令人困惑:對我來說,這意味着A類不會實現接口。 – 2012-04-01 20:49:14