1 回答

TA貢獻(xiàn)9條經(jīng)驗 獲得超4個贊
第一個問題:屬性是對字段的封裝,說白了,類中實際能夠存儲數(shù)據(jù)的還是字段,沒有字段,屬性不就沒用了嗎。不考慮安全性的情況下,屬性倒是顯得多余。實際上,屬性很有必要,通過對字段的封裝,實現(xiàn)對字段的安全訪問
第二個問題:接口是特殊的類,是一種抽想到極致的類。有的時候,我們希望寫一個函數(shù),傳入不同類型的類參數(shù),但是他們都具備同一種方法(多態(tài)),這種情況下普通的繼承也是可以的,但是最原始的基類中需要定義這個方法,但是函數(shù)體顯得沒有意義,接口中提供的這種不需要定義函數(shù)體,只需要聲明函數(shù)原型,使得代碼更簡潔。
?????? 這個時候你可能會問,為什么一定要創(chuàng)造一個新的關(guān)鍵字interfance,理由很簡單,C++中就是沒有這個關(guān)鍵字的,也沒有abstract這些復(fù)雜的關(guān)鍵字,為什么呢,因為C++這種語言支持多繼承,即一個子類,同時繼承多個父類。因此任何類,不論是接口類還是抽象類還是普通類,一律都能直接繼承多個。但是C#不行啊,規(guī)定只能有一個基類,要繼承多個,除非其余的都是接口類。這個怎么控制呢,就需要interfance來把關(guān)了,所以interfance是為了顯示說明接口類,使得多繼承的時候不至于混亂
第三個問題:靜態(tài)方法屬于類,普通方法屬于對象。在調(diào)用靜態(tài)方法的時候,可能沒有實例化對象,所以只有靜態(tài)字段和屬性可以調(diào)用,這種情況下,我們可以認(rèn)為,靜態(tài)方法是用來調(diào)用靜態(tài)字段或者屬性的。普通方法是用來調(diào)用普通字段的。如果你學(xué)過C語言或者C++語言,你會發(fā)現(xiàn),C#中的靜態(tài)字段更像是一個全局變量,而靜態(tài)方法是為了更方便的利用這個全局變量。
- 1 回答
- 0 關(guān)注
- 1240 瀏覽
添加回答
舉報