C 筆記 物件導向的學習

2021-08-20 20:29:55 字數 1113 閱讀 8478

c# 物件導向的封裝、繼承、多型

一.封裝

封裝:把客觀的事物封裝成類,使用和修改方便;

封裝就是將資料或函式等集合在乙個個的單元中(我們稱之為類)。被封裝的物件通常被稱為抽象資料型別。

封裝的意義在於保護或者防止**(資料)被我們無意中破壞。

封裝既可以封裝成員變數,又可以封裝成員方法

封裝學習例子

每個物件都包含它進行操作所需要的所有資訊,封裝只公開**單元的對外介面,而隱藏其具體實現,盡量不對外公開**。使用封裝有很多好處,從設計角度來講,封裝可以對外遮蔽一些重要的資訊,比如使用電腦的人只要知道怎麼使用電腦就可以,不用知道這些功能具體是怎麼實現的;從安全性考慮,封裝使對**的修改更加安全和容易,封裝明確的指出了哪些屬性和方法是外部可以訪問的,這樣當需要調整這個類的**時,只要保證公有屬性不變,公有方法的引數和返回值型別不變,那麼就可以盡情的修改這個類,而不會影響到程式的其他部分;封裝還避免了命名衝突的問題,封裝有隔離作用,不同的類中可以有相同名稱的方法和屬性,但不會混淆,也可以減少耦合。

二.繼承

繼承可以使用現有類的所有功能,並在無須重新編寫原來的類的情況下,對這些功能進行擴充套件。使用繼承而產生的類被稱為派生類或子類,而被繼承的類則稱為基類或超類或父類。繼承表示乙個型別派生於乙個基型別,它擁有該基型別的所有成員欄位和函式,其子類是對父類的擴充套件;介面繼承是表示乙個型別只繼承了函式的簽名,沒有繼承任何實現**。繼承劃分了類的層次性,也可以說繼承是對類的分組,父類代表的是抽象的類,更常用的類,而子類代表的是更為具體,更為細化的類;繼承是實現**重用、擴充套件的重要手段。所謂抽象的類是指與具體的事項相聯絡,但只是表達整體而不是具體概念的類,比如說形狀包含正方形、長方形、圓等,這時候形狀是乙個抽象的概念,相當於乙個父類,而正方形、長方形、圓是具體的形狀,相當於是子類。

三.多型

多型實現共有三種途徑,分別是:虛方法、抽象類、介面

多型是指程式中同名的不同方法共存的情況,主要通過子類對父類方法的覆蓋來實現多型。這樣,不同類的物件可以用同名的方法完成特定的功能,但具體的實現方法卻可以不同。比如說形狀包含正方形、長方形、圓等,每個形狀都有面積和周長,但是不同的形狀計算面積和周長的方法都不同。

c#的多型包括:介面多型,繼承多型。

其中繼承多型又包括通過虛擬方法實現的多型和通過抽象方法實現的多型性

C 學習筆記(物件導向)

protected 受保護的 用protected宣告的成員稱為受保護的成員,它不能被類外訪問,但是可以被派生類的成員函式訪問 在類體中,既不寫關鍵字private,又不寫public,則預設為private 宣告類的方法是由宣告結構體型別的方法發展來的 在類體中直接定義函式時,不需要在函式名前邊加...

C 學習筆記 物件導向的程式設計

物件導向的程式設計提高 物件導向的程式設計方法 將某類客觀事務共同特點 屬性歸納出來 形成乙個資料結構 將這類事務所能進行的行為也歸納出來,形成乙個個函式。物件導向的程式設計的四個基本特點 抽象 封裝 繼承 多型。類的成員函式和類的定義分開寫 class crectangle int crectan...

C 學習筆記 物件導向程式設計

1.什麼是類 物件和成員?類 乙個類包含很多的物件。比如人類就是乙個類,張 三 李四等是人類的物件,這些物件擁有人類共同的功能和資料,如身高 體重 年齡等,而具體化這些資料我們可看做是人類的成員變數。所以類是由若干個變數和相關函式組成,而物件則擁有這些變數和函式。2.如何宣告乙個類?類只有先宣告才能...