.NET中的靜態與非靜態的異同

靜態類 vs 普通類
靜態類與普通類的區別有以下幾點:
1)靜態類無法實例化而普通類可以;
2)靜態類只能從System.Object基類繼承;普通可以繼承其它任何非static和非sealed類,但也只能繼承一個類;
3)靜態類不能繼承接口;普通類可以繼承多個接口;
4)靜態類只能包含靜態成員;普通類可以包含靜態和非靜態成員;
5)靜態類不能作爲字段,方法參數和局部變量使用;普通類可以;
靜態類的意義:
可以用靜態類封裝一組不與任何對象相關聯的方法,如Math類,Console類。

靜態構造函數 vs 實例構造函數
靜態構造函數與實例構造函數的區別有以下幾點:
1)靜態構造函數屬於類,在第一次用到該類時執行且只執行一次;實例構造函數屬於對象,在每次初始化一個新對象的時候都會執行;
2)靜態構造函數只能定義一次,且不能包含參數;實例構造函數可以定義重載,且可以包含參數;
3)靜態構造函數只能訪問類型的靜態字段;實例構造函數可以訪問類型的靜態和非靜態字段;
4)靜態類不能包含訪問修飾符,默認爲private.
靜態構造函數的意義:
設置類型的初始化,例如初始化類型需要的實例對象,爲類型的靜態字段賦值等。

靜態方法 vs 實例方法
靜態方法與實例方法的區別有以下幾點:
1)靜態方法屬於類,通過類來調用;實例方法屬於對象,通過對象來調用;
2)靜態方法不能訪問類的非靜態成員;
靜態方法的意義:
完成一個與特定對象無關的功能。

靜態字段 vs 非靜態字段
靜態字段與非靜態字段的區別:
靜態字段屬於類,通過類來調用;非靜態字段屬於對象,通過對象來調用。
靜態字段的意義:
可以用靜態字段來記錄一些屬於類本身的信息。
發佈了45 篇原創文章 · 獲贊 9 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章