c 抽象 繼承 封裝 多型

2021-08-28 17:00:26 字數 1204 閱讀 5434

物件導向的基本概念有物件、類、抽象、封裝、繼承、多型、介面等

有的人說物件導向有四大基本特徵,抽象,封裝,繼承,多型,但其實抽象可以丟擲在外,本質來說,物件導向的基本特徵是繼承,封裝,多型。

先來說c++中的物件和類:

類是物件的抽象,而物件是類的具體化,而要使用類的功能,具體就要先定義乙個物件

例如:class student ;  student stu裡面的stu就是物件   還有一種定義的方法 class stu1,stu2;

封裝:其實封裝和抽象可以歸結到一起,抽象的是具體的實現,封裝的是介面,封裝就是將抽象得到的資料和行為(或功能)相結合,形成乙個有機的整體,也就是將資料與運算元據的源**進行有機的結合,形成」類」,其中資料和函式都是類的成員。封裝的目的是增強安全性和簡化程式設計,使用者不必了解具體的實現細節,而只是要通過外部介面,特定的訪問許可權來使用類的成員。封裝可以隱藏實現細節, 使得**模組化。

封裝的簡單一句話:封裝就是將例項抽象得到的資料和行為(或功能)封裝成乙個類。

繼承:繼承是指這樣一種能力,它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。其繼承的過程,就是從一般到特殊的過程,它是類與類之間的一種關係,乙個類通過繼承的方法,可以得到另乙個類屬性和方法,達到**重用的目的。

引申:繼承,有三種繼承方法,分為實現繼承,介面繼承,視覺化繼承。

實現繼承就是重新寫乙個函式去實現。用純虛函式實現。

介面繼承是指純粹繼承父輩的老底,也可以去重新實現。用虛函式實現。  

視覺化繼承則是純粹的全部自己實現,自己功能自己解決。對應的是非虛函式。

多型:c++多型性是通過虛函式來實現的,虛函式允許子類重新定義成員函式,而子類重新定義父類的做法稱為覆蓋或者稱為重寫。而過載則是允許有多個同名的函式,而這些函式的引數列表不同,允許引數個數不同,引數型別不同,或者兩者都不同。關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式

多型簡單一句話:一種呼叫,多種狀態(乙個介面,多種方法)

引申:過載

同乙個類中,函式名相同,引數列表不同的函式之間是過載關係。

覆蓋子類重寫父類的虛函式,函式名相同,引數列表相同,返回值相同的虛函式。

隱藏(有兩種情況)

1. 派生類的函式與基類的函式同名,但是引數不同。此時,不論有無virtual關鍵字。

2. 派生類的函式與基類的函式同名,並且引數也相同。但是基類函式沒有virtual關鍵字。

封裝,抽象,繼承,多型。

封裝 隱藏內部實現細節,防止資料被隨意修改,提公升安全性 由於避免暴露了很多實現細節,只提供對於指定欄位的操作或只提供幾個方法,這樣後續修改維護比較容易。下面是乙個杜撰的示例 public class card 下面不提供id的修改,每張卡id只能是一定的,不能被修改了 對於學習者來說,降低其理解難...

抽象 封裝 繼承 多型

計算機是表示和處理資訊的機器。為了解決現實世界的問題,需要把現實世界的問題域對映到計算機系統裡。程式語言被用來輔助人們向計算機系統講述現實世界問題域的工具。問題域中具有大量資訊,我們需要用某種信條指導,對這些資訊進行梳理。在物件導向的程式設計正規化下,有四個處理資訊的教條 抽象,封裝,繼承,多型。1...

c 封裝,繼承,多型

一 封裝 封裝是實現物件導向程式設計的第一步,封裝就是將資料或函式等集合在乙個個的單元中 我們稱之為類 被封裝的物件通常被稱為抽象資料型別。物件導向程式設計中一般以類作為資料封裝的基本單位。類將資料和運算元據的方法結合成乙個單位。在設計類時,不希望直接訪問類中的資料,而是希望通過方法來訪問資料。如此...