1 回答

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