1. 程式人生 > >面向物件最重要的三個基本特徵

面向物件最重要的三個基本特徵

面向物件的三個基本特徵是:封裝、繼承、多型。


封裝

封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。

繼承

面向物件程式設計 (OOP) 語言的一個主要功能就是繼承。繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。

通過繼承建立的新類稱為“子類”或“派生類”。

被繼承的類稱為基類父類超類

繼承的過程,就是從一般到特殊的過程。

要實現繼承,可以通過繼承Inheritance)和組合Composition)來實現。

在某些 OOP 語言中,一個子類可以繼承多個基類。但是一般情況下,一個子類只能有一個基類,要實現多重繼承,可以通過多級繼承來實現。

繼承概念的實現方式有三類:實現繼承、介面繼承和可視繼承。

實現繼承是指使用基類的屬性和方法而無需額外編碼的能力;

介面繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;

可視繼承是指子窗體(類)使用基窗體(類)的外觀和實現程式碼的能力。

在考慮使用繼承時,有一點需要注意,那就是兩個類之間的關係應該是屬於關係。例如,Employee 是一個人,Manager 也是一個人,因此這兩個類都可以繼承 Person 類。但是Dog 類卻不能繼承 Person 類,因為狗並不是人。

抽象類僅定義將由子類建立的一般屬性和方法,建立抽象類時,請使用關鍵字 Interface 而不是 Class

多型

多型性(polymorphisn)是允許你將父物件設定成為和一個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作。簡單的說,就是一句話:允許將子類型別的指標賦值給父類型別的指標。

實現多型,有二種方式,覆蓋,過載。

覆蓋,是指子類重新定義父類的虛擬函式的做法。

過載,是指允許存在多個同名函式,而這些函式的引數表不同(或許引數個數不同,或許引數型別不同,或許兩者都不同)。

其實,過載的概念並不屬於面向物件程式設計,過載的實現是:編譯器根據函式不同的引數表,對同名函式的名稱做修飾,然後這些同名函式就成了不同的函式。對於這兩個函式的呼叫,在編譯器間就已經確定了,是靜態的(記住:是靜態)。也就是說,它們的地址在編譯期就綁定了,因此,過載和多型無關!真正和多型相關的是

覆蓋。當子類重新定義了父類的虛擬函式後,父類指標根據賦給它的不同的子類指標,動態的呼叫屬於子類的該函式,這樣的函式呼叫在編譯期間是無法確定的。因此,這樣的函式地址是在執行期繫結的。結論就是:過載只是一種語言特性,與多型無關,與面向物件也無關!

那麼,多型的作用是什麼呢?我們知道,封裝可以隱藏實現細節,使得程式碼模組化;繼承可以擴充套件已存在的程式碼模組(類);它們的目的都是為了——程式碼重用。而多型則是為了實現另一個目的——介面重用!多型的作用,就是為了類在繼承和派生的時候,保證使用家譜中任一類的例項的某一屬性時的正確呼叫。

相關推薦

面向物件重要基本特徵

面向物件的三個基本特徵是:封裝、繼承、多型。 封裝 封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。 繼承 面向物件程式設計 (OOP) 語言的一個主要功能就是“繼承”。繼承是指這樣一種能力:它可以

面向物件基本特徵和五種設計原則

面向物件的三個基本特徵 抽象與封裝: 抽象是把系統中需要處理的資料和在這些資料上的操作結合在一起,根據功能、性質和用途等因素抽象成不同的抽象資料型別。每個抽象資料型別既包含了資料,又包含了針對這些資料的授權操作。在面向物件的程式設計中,抽象資料型別是用“類”

面向物件基本特徵是:封裝、繼承、多型。(詳解示例)

什麼是封裝:  封裝是實現面向物件程式設計的第一步,封裝就是將資料或函式等集合在一個個的單元中(我們稱它為類)。被封裝的物件通常被稱為抽象資料型別。也可以稱作抽象,將現實中的資料抽象成為資料型別 封裝的意義:   封裝的意義在於保護或者防止程式碼(資料)被我們無意中破壞。

面向物件基本特徵和五設計原則

面向物件的精神:可維護、可擴充套件、可複用、靈活性好。 三個基本特徵【封裝、繼承、多型】 封裝:每個物件都包含它能進行操作所需要的所有資訊,這個特性稱為封裝。 因為物件不必依賴其他物件來完成自己的操作,這樣方法和屬性包裝在類中,通過類的例項來實現。 封裝的好處:1、良好

面向物件基本特徵 和 五種設計原則

一、三個基本特徵 面向物件的三個基本特徵是:封裝、繼承、多型。 封裝 封裝最好理解了。封裝是面向物件的特徵之一,是物件和類概念的主要特性。 封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。 繼承 面向物件程式設計 (OOP) 語言的一個

面向對象的基本特征

不同的 繼承和派生 編程 是什麽 隨著 部分 student has-a 多重 最近找了一篇面向對象的介紹,看過後,感覺不錯,淺顯易懂,所以轉載給大家看看!!! 面向對象的三個基本特征(講解)面向對象的三個基本特征是:封裝、繼承、多態。 封裝封裝最好理解了。封裝是

面向對象的基本特征 和 五種設計原則

對象相等 存在 正是 提高 都是 並不是 ram 無法 pro 面向對象的三個基本特征 和 五種設計原則 來源: http://blog.csdn.net/cancan8538/article/details/8057095 一、三個基本特征 面向對象的三個基本

面向對象的基本元素,五基本原則

pro mark 基本 ocs color 技術分享 b- ima docs 由於作者不習慣該編輯器,只是貼出上本文的截圖,詳見: https://www.yuque.com/docs/share/3e942cb0-f659-435b-ad0e-5fbd2d4a89e7面

小貓咪的面向物件 一個類物件 用兩列表寫

class Cat: def __init__(self): self.name =None self.age = None self.color = None def run(self): pr

面向物件分析的模型和五層次

在面向物件分析中,主要由物件模型、動態模型和功能模型組成。物件模型是最基本、最重要、最核心的。   用面向物件方法開發軟體,通常需要建立3種形式的模型,它們分別是描述系統資料結構的物件模型,描述系統控制結構的動態模型和描述系統功能的功能模型。一個典型的軟體系統使用資料結構(物件模型),執行操作(

面向物件程式設計的 3 主要特徵:封裝性、繼承性、多型性

封裝性:封裝是一種資訊隱蔽技術,它體現於類的說明,是物件的重要特性。封裝使資料和加工該資料的方法(函式)封裝為一個整體,以實現獨立性很強的模組,使得使用者只能見到物件的外特性(物件能接受哪些訊息,具有哪些處理能力),而物件的內特性(儲存內部狀態的私有資料和實現加工能力的演算法

面向物件設計的五基本原則

面向物件的3個基本要素:封裝、繼承、多型 面向物件的5個基本設計原則: 單一職責原則(Single-Resposibility Principle)     其核心思想為:一個類,最好只做一件事,只有一個引起它的變化。單一職責原則可以看做是低耦合、高內聚在面向物件原

面向物件程式設計的六基本原則

運用面向物件的思想進行軟體設計時要遵循的6個基本原則: (1)       單一職責原則:一個類只負責一項職責。降低程式碼複雜度,增加可讀性可維護性,只有在邏輯足夠簡單、類中的方法足夠少時才可以在程式碼級別上違反單一職責原則。職責被分解為很多細粒度的職責,程式已經寫好的情況

OOP基本特徵:封裝、繼承、多型

C++程式設計之—面向物件的三個基本特徵 面向物件的三個基本特徵是:封裝、繼承、多型。 封裝 封裝最好理解了。封裝是面向物件的特徵之一,是物件和類概念的主要特性。 封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操

SOLID:面向物件設計的五基本原則

在程式設計領域,SOLID 是由羅伯特·C·馬丁在 21 世紀早期引入的記憶術首字母縮略字,指代了面向物件程式設計和麵向物件設計的五個基本原則。當這些原則被一起應用時,它們使得一個程式設計師開發一個容易進行軟體維護和擴充套件的系統變得更加可能。**SOLID** 是以下五個單詞的縮寫: - Single R

面向物件的四基本特徵和七大設計原則

複習一哈~ 基本特徵抽象 將一些事物的共性抽離出來歸為一個類。 如對於動物,具有生命體徵、活動能力等區別於其它事物的共同特徵 封裝 有選擇地隱藏和暴露資料和方法 比如有U盤這個類,我希望隱藏內部組成和實現,只暴露USB介面以供使用 繼承 子類可以直接使用父類的部分資料和方法,可以

面向物件基本元素,五基本原則

三個基本元素: 1. 封裝: 封裝是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面。面向物件計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的物件,這些物件通過一個受保護的介面訪問其他物件。2. 繼承: 繼承是一種聯結類的層次模型,並且允許和鼓勵

面向物件基本要素,五基本原則

文章摘自http://blog.csdn.net/Lee_Xq_/article/details/38994047 在C++ primer及相關書籍中未看到過這個知識點,特此記錄一下。 三個基本元素:         封裝、繼承和多型。 1. 封裝: 封裝是把過程和資料包

java面向物件程式設計的4特徵以及重寫過載的區別

面向物件程式設計有4個特徵:封裝,繼承,多型,抽象。 1. 封裝,隱藏內部實現,只暴露公共行為 2. 繼承,提高程式碼的重用性 3. 多型,體現現實生活中相似物件的差異性 4. 抽象,抽取現實世界中相似物件的共同點 多型有四種體現形式: 1. 過載。 2. 重寫。 其中過

面向對象的特點:封裝、繼承、多態

super student tostring 會有 我們 強行 span json 使用 封裝 1、封裝的概念 所謂封裝,就是指隱藏內部的細節,不暴露在外面。 把構造函數裏的this改成 _price; 在js裏面,實現封裝的方法非常簡單,只需要在聲明屬性