C#筆記第四章“C#2.0面向對象編程”
一:C#類類型
1、如果要用過new someClass()來創建新對象,必須重定義默認構造函數
2、僅僅返回類型不同不能重載
3、this關鍵字可以用來轉發構造函數調用
二、oop三大支柱:封裝,繼承,多態。繼承有is-a和has-a的關係,多態靠虛擬和抽象來支持。
三:C#封裝支持。
1:傳統訪問方法和修改方法
2:類屬性,其中value代表賦值號郵編的數據,數據類型取決於代表的實際種類。
value不是關鍵字。而是“上下文關鍵字”。
對屬性可以使用C#的內建運算符(++)。
屬性在內部實際轉換成set_XXX和get_XXX,因此自己不能再定義這種的函數了。
只讀只寫屬性,屬性的get、set也可以設定可見性級別。
存在“靜態屬性”
四:C#的繼承支持
1:is-a模型
a:每個子類應該顯示調用一個合適的積累構造函數,可以使用關鍵字base。
b:C#不允許多繼承的出現。
c:使用sealed關鍵字來密封類,不讓它被繼承。
2:has-a模型(包含/委託)
3:嵌套類型
公共嵌套類型可以被任何人調用,私有嵌套類型只能被包含類的成員使用。嵌套類一般用來對外部類起輔助作用,而不是爲了給外部世界使用。在外部使用時要使用包含類型的作用域來限定它。
五:C#的多態支持
1:virtual和override關鍵字
如果基類想定義一個可以被子類重寫的方法,它必須指定方法是虛的,可以定義該方法的一個默認實現。
2:sealed關鍵字也可以用到類型成員上,以防止虛成員將類被繼承類型所重寫。起到只密封一些方法或屬性的作用。(用在非虛方法上應該沒有意義,或者錯誤?)
3:抽象類。
a:不想某個類被創建實例的時候用。使用abstract關鍵字。
b:強制多態。基類定義抽象方法,子類必須實現。抽象方法不包含默認的實現。
c:抽象方法只能用在抽象類中。子類如果不實現抽象方法,也必須聲明用abstract修飾。
4:成員隱藏。如果一個派生類重定義了一個繼承自基類的相同的成員,派生類就隱藏了父成員。這時編譯器會報警,解決辦法一是採用virtual和override,另一種是在子類類型前加上new,明確指定就是要隱藏父類的版本。可以隱藏的包括任何基類成員類型。但是使用強制類型轉換仍然可以調用一個已隱藏的基類實現。
六:C#的類型轉換規則
1:當兩個類之間是is-a關係時,將派生類型存儲在基類引用中總是安全的。這是“隱式類型轉換”。小類型到大類型。
2:“顯示類型轉換”,大類型到小類型,使用前最好先用is判斷下。
七:分部類型
使用關鍵字partial。
八:XML註釋
這是一個大問題。GhostDoc可以自動生成部分xml註釋,NDoc可以提取XML註釋成幫助文檔。
《C#與.NET3.0高級程序設計》讀書筆記(二)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
C#時間相減
karen_wang
2020-07-04 01:42:50
dotnet面試題集
artoksxb
2020-07-03 10:29:42
《C#與.NET3.0高級程序設計》讀書筆記(一)
likefrank
2020-02-24 20:13:44
VS2005項目模板和項模板丟失的問題
likefrank
2020-02-24 20:13:44
《C#與.NET3.0高級程序設計》讀書筆記(三)
likefrank
2020-02-24 20:13:33
檢測xml字符串是否合法
scoredevil
2020-02-24 08:45:22
C#調用CMD對話框並執行命令
白色冰激凌
2020-02-23 10:10:18
LINQ To XML簡單應用一
artoksxb
2020-02-23 03:53:25
61條面向對象的經驗原則
sikaiyuan2008
2020-02-22 10:31:28
c#在類型系統世界的位置
sikaiyuan2008
2020-02-22 10:31:28
asp.net 程序自動提交登陸表單並保持Session及Cookie
闪光的小虫子
2020-02-21 22:14:13
jquery,json
闪光的小虫子
2020-02-21 22:14:00
asp.net(c#)一次預覽並上傳多張圖片
iteye_5378
2020-02-21 18:37:38