C# 接口的實(shí)現(xiàn)
在繼續(xù)前,先討論一下如何定義和實(shí)現(xiàn)接口。第9章介紹過(guò)接口的定義方式與類相似,使用的代碼如下:
interface IMyInterface
{
// Interface members.
}
接口成員的定義與類成員的定義相似,但有以下幾個(gè)重要區(qū)別:
?不允許使用訪問(wèn)修飾符(public、private、protected或internal),所有接口成員都是隱式公共的。
?接口成員不能包含代碼體。
?接口不能定義字段成員。
?不能用關(guān)鍵字static、virtual、abstract或sealed來(lái)定義接口成員。
?類型定義成員是禁止的。
但要隱藏從基接口中繼承的成員,可以用關(guān)鍵字new來(lái)定義它們,例如:
interface IMyBaselnterface
{
void DoSomething();
}
interface IMyDerivedlnterface : IMyBaselnterface
{
new void DoSomething();
}
其方式與隱藏繼承的類成員的方式一樣。
在接口中定義的屬性可以定義訪問(wèn)塊get和set中的哪一個(gè)能用于該屬性(或?qū)⑺鼈兺瑫r(shí)用于該屬性),例如:
interface IMylnterface
{
int Mylnt { get; set; }
}
其中int屬性Mylnt有g(shù)et和set訪問(wèn)器。對(duì)于訪問(wèn)級(jí)別有更嚴(yán)格限制的屬性來(lái)說(shuō),可以省略它們中的任一個(gè)。
接口沒(méi)有指定應(yīng)如何存儲(chǔ)屬性數(shù)據(jù)。接口不能指定字段,例如用于存儲(chǔ)屬性數(shù)據(jù)的字段。最后,接口與類一樣,可以定義為類的成員(但不能定義為其他接口的成員,因?yàn)榻涌诓荒馨愋投x)。
點(diǎn)擊加載更多評(píng)論>>