C#面向對象詳解


//封裝就是將數據或函數等集合在一個個的單元中,我們稱之為類,被封裝的對象通常被稱為抽象數據類型,
//封裝的意義在於保護或防止代碼被我們無意中破壞,
//封裝既可以封裝成員變量,又可以封裝成員方法,
//封裝成員變量步驟:
//新建類,面向對象最基本單元就是類,即.cs文件,像一個文本文檔里面放置C#代碼,創建的類默認訪問修飾符為internal,隱藏顯示,
//寫構造函數,類的基本結構是構造函數,每一個類都有一個構造函數,默認隱藏,訪問修飾符必須是public,並且不需要寫任何返回值,方法名與類名一致,
//向類中填寫信息,將成員變量訪問修飾符聲明為private后外界無法訪問,聲明訪問修飾符為public的屬性,Ctrl+R+E,

原文鏈接:https://www.cnblogs.com/qq450867541/p/6108019.html


//繼承是類之間建立一種相交的關系,使得新定義的派生類的實例可以繼承已有基類的特征並且還可以添加新的功能,
//繼承特點:
//派生類是對基類的擴展,派生類可以添加新的成員,但不能移除已經繼承的成員的定義,
//繼承是可以傳遞的,如果C從B中派生,B又從A中派生,那么C不僅繼承了B中聲明的成員,同樣也繼承了A中聲明的成員,
//構造函數和析構函數不能被繼承,除此之外其他成員能被繼承,基類中成員的訪問方式只能決定派生類能否訪問它們,
//派生類如果定義了與繼承而來的成員同名的新成員,那么就可以覆蓋已繼承的成員,但這並不是刪除了這些成員,只是不能再訪問這些成員,
//類可以定義虛方法、虛屬性及虛索引指示器,它的派生類能夠重載這些成員,從而使類可以展示出多態性,
//派生類只能從一個類中繼承,可以通過接口來實現多重繼承,

//繼承時先執行父類構造函數,接着再執行子類構造函數,最后再執行方法,
//在派生類中訪問基類中的成員一般有2種方式,一是調用base.<成員> 調用基類的方法,二是顯示類型轉換為父類,
//當派生類需要覆蓋基類的方法時,C#使用new修飾符來實現隱藏基類成員,
//密封類,如果對類不作任何約束,也就是說所有類都可以被繼承,這種繼承的濫用會導致類的層次結構十分龐大,類與類之間的關系會變得很亂導致無法理解,因此C#提供了密封類,只需在父類前加上sealed修飾符,這個類就不能被繼承了,密封方法也是在方法前加上sealed修飾符,
//抽象類和密封類剛好相反,它是為繼承而生的,抽象類不能實例化,抽象方法沒有具體執行代碼,必須在非抽象的派生類中重寫,也就是基類並不實現任何執行代碼,只是進行定義,這一點和接口有相同的地方,
//如果類中有抽象方法,則類必須聲明為抽象類,
//有時候不想把類聲明為抽象類,但又想實現方法在基類里不具體實現,而是想實現方法由派生類重寫,遇到這種情況時可使用virtual關鍵字將方法聲明為虛方法,
//注意虛方法必須聲明方法主體,抽象方法則不需要,
//在繼承時,如果基類構造函數是有參數的,子類構造函數也必須有一個有參數的構造函數,否則會報錯,

原文鏈接:https://www.cnblogs.com/fangyz/p/5271780.html


//多態

原文鏈接:

https://www.cnblogs.com/longteng1991/archive/2013/06/13/3131739.html
https://www.cnblogs.com/zhangkai2237/archive/2012/12/20/2826734.html
https://www.cnblogs.com/binyao/p/4891306.html
https://www.cnblogs.com/loveyue/archive/2009/04/19/1439025.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM