C#學(xué)習(xí)class類的三大特性
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
一、封裝 封裝:將類的某些信息隱藏在類的內(nèi)部(用private修飾),不允許外部程序直接訪問,需要訪問也是訪問該類為其提供的公共屬性。 裝屬性的作用:防止類中的數(shù)據(jù)被惡意修改。 封裝屬性的好處: 1.可以隱藏類的實現(xiàn)細節(jié) 2.外部只能通過訪問規(guī)定的屬性來訪問數(shù)據(jù),保護數(shù)據(jù) 3.方便加入控制語句,即對數(shù)據(jù)做約束
Person 類封裝了兩個私有字段name 和age 。通過公共的構(gòu)造函數(shù)和設(shè)置器方法(如SetName 和SetAge ),我們可以控制對內(nèi)部狀態(tài)的訪問和修改。這樣,外部代碼只能通過這些公共方法來訪問和修改Person 對象的內(nèi)部狀態(tài),而不能直接訪問或修改私有字段。這提高了代碼的可維護性和健壯性,因為我們可以控制對內(nèi)部狀態(tài)的訪問和修改,并在必要時添加額外的驗證邏輯。二、繼承 1. 代碼重用:繼承允許我們定義一個類,然后創(chuàng)建其他類從已有的類中派生出來。這樣,我們可以重用基類中的方法和屬性,減少代碼的重復(fù)編寫。 2. 擴展性:繼承使得我們能夠定義一個基類,然后根據(jù)需要創(chuàng)建派生類來擴展或修改基類的功能。這使得代碼更加靈活,可以根據(jù)需求進行擴展和定制。 3. 層次結(jié)構(gòu):通過繼承,我們可以建立類之間的層次結(jié)構(gòu),使得代碼更加有組織性和層次性。這有助于理解代碼的結(jié)構(gòu)和功能,以及更好地進行代碼維護和調(diào)試。 4. 多態(tài)性:繼承是實現(xiàn)多態(tài)性的基礎(chǔ)。通過繼承,我們可以創(chuàng)建具有相同接口但具有不同實現(xiàn)的方法和屬性,從而實現(xiàn)多態(tài)性。這使得代碼更加靈活,可以根據(jù)實際需求選擇不同的實現(xiàn)方式。 代碼例子:
繼承的特征: 1.子類繼承了父類的非私有的屬性與方法,構(gòu)造方法除外 2.子類在創(chuàng)建構(gòu)造方法時需要調(diào)用父類構(gòu)造方法; 格式:派生類名(總參數(shù)列表(父子類的參數(shù))):base(父類參數(shù)){} 3. 在創(chuàng)建子類對象時,系統(tǒng)會默認的先調(diào)用父類的構(gòu)造方法,再調(diào)用子類的構(gòu)造方法 4. 子類想使用父類的屬性和方法時,需要用到base關(guān)鍵字(base.) 重寫與重載的區(qū)別: 1.作用范圍不同,重寫發(fā)生在具有父子關(guān)系的兩個類中的同名方法,而重載是在同一個類中同名方法。 2.不同點不同,重寫的兩個方法的返回值與參數(shù)相同,方法的聲明不同(也就是{ }中的內(nèi)容不同),重載的方法只要參數(shù)列表不同 三、多態(tài) 多態(tài):是允許你將父對象設(shè)置成為和一個或更多的他的子對象相等的技術(shù),賦值之后,父對象就可以根據(jù)當(dāng)前賦值給它的子對象的特性以不同的方式運作。簡單地說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。 代碼例子:
在這個例子中,我們有一個基類Animal和兩個派生類Dog和Cat。每個派生類都重寫了基類的Speak方法。在主程序中,我們創(chuàng)建了一個Animal類型的引用,但實際上它指向了一個Dog對象或一個Cat對象。當(dāng)我們調(diào)用這個引用的Speak方法時,會調(diào)用實際對象的Speak方法,這就是多態(tài)性的體現(xiàn)。該文章在 2025/1/26 10:16:44 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |