日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# OO(初级思想)

發(fā)布時間:2025/3/8 C# 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# OO(初级思想) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

繼承,多態(tài),封裝

在C#中,為了能夠合理描述自然界的規(guī)律,面向?qū)ο蟮木幊桃肓死^承的概念,是面向?qū)ο缶幊讨凶钪匾母拍钪?定義了如何根據(jù)現(xiàn)有的類創(chuàng)建新類的過程.

繼承:一個類派生出來的子類具有這個類所有的公共屬性和方法。

父類派生子類,子類繼承父類。

語法-- 子類父類

子類和父類

被繼承的類稱為父類或基類,繼承其他類的類稱為子類或派生類,子類不僅具有自己的獨有的成員,還有父類的成員。

Is a?的應(yīng)用

在兩個類中建立繼承關(guān)系必須符合is a 的關(guān)系(例:小型卡車 is a 卡車,卡車is a 汽車,小型卡車is a汽車)

里氏替換原則:子類可以替換父類,但父類不可以替換子類對象。

只有當(dāng)子類可以替換父類時,軟件功能不受影響,父類才能真正被復(fù)用,而子類也能夠在父類的基礎(chǔ)上增加新的行為。

Is??as操作符的使用

Is 操作符用于檢查對象和制定的類型是否兼容。

As 操作符主要用于兩個對象之間的類型轉(zhuǎn)換

繼承的特性

繼承有傳遞性(子類能派生子類)和單根性(一個子類不能同時繼承多個父類)

Base關(guān)鍵字和protected修飾符

base:表示父類,用于調(diào)用父類里的成員。

Protected:修飾父類成員,只允許子類調(diào)用和類的本身內(nèi)部訪問,不允許其他非子類訪問。

修飾符的區(qū)別:

Public:任何類都可以訪問。

Private:任何類都不可以訪問。

Protected:只能由類的本身該類的子類內(nèi)部訪問,其他任何類不可以訪問

子類構(gòu)造函數(shù):

任何子類都繼承父類的公共無參構(gòu)造函數(shù),父類的其他構(gòu)造函數(shù)不會被繼承,只能在子類中聲明相同簽名的構(gòu)造函數(shù)并用base顯示調(diào)用。

子類的構(gòu)造函數(shù)肯定會調(diào)用父類的構(gòu)造函數(shù),先執(zhí)行父類中的構(gòu)造函數(shù)在執(zhí)行子類中的構(gòu)造函數(shù)。

隱式調(diào)用父類中的構(gòu)造函數(shù):

子類(沒有指明的情況下)調(diào)用父類中系統(tǒng)默認(rèn)的一個無參構(gòu)造函數(shù)。

顯示掉用父類中的構(gòu)造函數(shù)

在子類指明的情況下用base關(guān)鍵字調(diào)用父類的某一個構(gòu)造函數(shù),實現(xiàn)屬性的初始化,然后在子類本身的構(gòu)造函數(shù)中完成對子類特有的屬性初始化。如果子類沒有指明調(diào)用父類里手動創(chuàng)建的哪個構(gòu)造函數(shù)時系統(tǒng)就會調(diào)用父類中手動創(chuàng)建的無參的構(gòu)造函數(shù),若是沒有系統(tǒng)將會報錯。

Public SE(string? name);? =? Public SE(string? name):base();

注:用base調(diào)用父類構(gòu)造函數(shù)時,只能傳遞參數(shù)。?????????????????????????????????????????????????????????????????????????????????????????????????????

多態(tài)

多態(tài):兩個或多個屬于不同類的對象,對于同一個消息(方法調(diào)用)作出不同響應(yīng)的方式。

多態(tài)是建立在繼承的基礎(chǔ)上的,沒有繼承就沒有多態(tài)。

實現(xiàn)多態(tài)

以父類類型作為參數(shù):可以接受他的子類類型,程序在運行中自動判斷實際參數(shù)屬于哪種子類,調(diào)用子類的方法從而實現(xiàn)多態(tài)。

我們通過虛方法和抽象方法在繼承的基礎(chǔ)上實現(xiàn)多態(tài)(通過重寫父類的方法,完成自己的方法)。

虛方法:實現(xiàn)方法重寫。通過關(guān)鍵字Virtual來定義一個虛方法(父類中),用Override修飾來重寫這個虛方法(子類中)。

語法:訪問修飾符 virtual 返回值類型 方法名()

{

//方法體

}

?

用虛方法 實現(xiàn)多態(tài):

1.子類重寫父類的虛方法

兩種方式:1.創(chuàng)建父類變量用子類對象實例化這個父類變量

????????? 2.把父類類型作為參數(shù),它的子類對象作為參數(shù)傳入

2.運行時,根據(jù)實際創(chuàng)建的對象決定執(zhí)行哪個方法

抽象方法: 是一個沒有實現(xiàn)的方法,這些方法只能定義,通過在定義方法時加上關(guān)鍵字abstract可以聲明一個抽象方法(父類中),用Override來重寫這個抽象方法(重寫)。

語法:訪問修飾符 sbstract返回值類型 方法名();

注:抽象方法中沒有方法體。

抽象方法的應(yīng)用:定義抽象方法必須在非抽象的子類中去實現(xiàn),抽象方法必須定義在抽象類中。

?

抽象類:用sbstract修飾的類都是抽象類。抽象類是抽象的概念,抽象類提供抽象方法要求繼承他的子類去實現(xiàn),通過這些抽象方法來約束子類的行為,有抽象的方法的類必然是抽象類,抽象類中不一定只能有抽象方法。

抽象類不能被實例化,也不能是密封和靜態(tài)的

?

抽象方法和虛方法都是通過override重寫父類的方法來實現(xiàn)多態(tài)。

注:重寫父類的語法:方法名、參數(shù)列表,返回值一樣

(方法重載是在一個類中完成,方法名相同,參數(shù)個數(shù)和參數(shù)類型不同,并且和返回值無關(guān))

二者之間的區(qū)別:

抽象方法:

用abstract關(guān)鍵字修飾,

沒有方法體,

必須被override重寫,

只能在抽象類中寫。

?

虛方法:

用virtaul關(guān)鍵字修飾有方法體

可以被override重寫,

也可以不被override重寫

?????????????????

面向?qū)ο笏枷?/strong>

封裝:保證對象自身數(shù)據(jù)的完整性和安全性。

繼承:建立類之間的關(guān)系,實現(xiàn)代碼復(fù)用,方便系統(tǒng)擴(kuò)展。

多態(tài):相同的方法調(diào)用可實現(xiàn)不同的實現(xiàn)方式。

面向?qū)ο蟾呒墤?yīng)用?

設(shè)計模擬式

在軟件工程中把對象的依賴性叫做耦合,而一個模塊內(nèi)部各個元素彼此之間的聯(lián)系叫做內(nèi)聚。軟件工程中推崇“高內(nèi)聚”,“低耦合”的設(shè)計。?

設(shè)計模式概念:某些特定問題經(jīng)過實踐檢驗的特定的解決方法。

設(shè)計模式就像古代的《三十六計》一樣。設(shè)計模式就是人們在軟件

開發(fā)中對一些經(jīng)驗的總結(jié)。

面向?qū)ο笤O(shè)計模式是可復(fù)用面向?qū)ο筌浖幕A(chǔ)??

簡單工廠設(shè)計模式:創(chuàng)建簡單工廠就是吧變化點封裝起來,在類的內(nèi)部對代碼執(zhí)行增加修改通過定義一個父類類型的方法返回父類類型子類對象,這個方法體內(nèi)實例的子類根據(jù)方法傳的參數(shù)來進(jìn)行創(chuàng)建。

簡單工廠設(shè)計模式降低了類與類之間的耦合性極大地減少了客戶程序的修改,使程序擴(kuò)展性能大大增強(qiáng)(使客戶程序基本不需改動),但簡單工廠也有一定的局限性。

單例設(shè)計模式:將產(chǎn)生實例的方法在類部,通過一個靜態(tài)方法返回它的實例。(在類中把構(gòu)造函數(shù)設(shè)為私有的)

私有構(gòu)造函數(shù):一種特殊的構(gòu)造函數(shù),通常只包含靜態(tài)成員的類中,如果一個類中只有私有的構(gòu)造函數(shù)沒有公共得構(gòu)造函數(shù)的話,則其他類將無法訪問該類的實例。

單例設(shè)計模式特點:

1.???? 私有構(gòu)造函數(shù)。

2.???? 2.保存唯一的靜態(tài)的私有變量。

3.???? 獲取唯一實例的靜態(tài)方法。

應(yīng)用單例設(shè)計模式:當(dāng)類只能有一個實例存在,并且可以在全局訪問可以使用單例設(shè)計模式。

簡單工廠模式應(yīng)用:簡單工廠模式試用于客戶程序不需要知道所創(chuàng)建的對象到底屬于哪個子類,所要創(chuàng)建的對象需要變化,因此把這些變化封裝到工廠之內(nèi)。

軟件的設(shè)計以需求為基礎(chǔ),所以要適當(dāng)?shù)那闆r下選用適當(dāng)?shù)脑O(shè)計模式。

總結(jié)

以上是生活随笔為你收集整理的C# OO(初级思想)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。