對OOP的三大特性的理解

2021-09-22 18:07:50 字數 704 閱讀 8689

封裝,繼承,多型

封裝是為了隱藏類的內部機制,在不影響使用的前提下可以修改內部細節,同時可以保護內部資料。

繼承是為了復用父類的**,讓程式有邏輯上的上下關係。

多型是能夠讓物件根據不同的訊息引數,作出不同的行為,只要分為執行時多型和編譯時多型。

優點:易維護、易復用、易擴充套件,由於物件導向有封裝、繼承、多型性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護 

缺點:效能比面向過程低 

物件導向的多型分為編譯時多型和執行時多型。

編譯時多型是靜態的,根據方法列表的不同,來區分不同的函式,在編譯之後會變成兩個不同的函式,主要指方法的過載。

執行時多型是通過動態繫結來實現的*(動態繫結是指在執行過程中根據具體的物件才知道當前執行的是哪個方法),主要是指方法的重寫。

區別:形式的區別,過載是在同乙個類中的同乙個方法名,使用不同的引數返回。重寫是在父子類之間有個繼承關係,子類可以重寫父類的方法。

實現的區別,過載是通過靜態繫結的,在程式執行之前,就已經知道方法在哪個類。重寫的具體實現相對複雜,每個類在方法區中都會有乙個方法表,方法表中存放著各個方法的實際入口位址,如果某個方法在子類沒有被重寫,那麼子類的虛方法表裡面的位址入口和父類相同方法的位址入口是一致的,都指向父類的實現入口。如果子類中重寫了這個方法,子類方法表中的位址將會替換為指向子類的實現入口。

(什麼是繫結?把乙個方法與其所在的類/物件關聯起來叫做方法的繫結)

精簡的OOP的三大特性

封裝 1.隱藏實現細節 2.恰當地公開介面 3.將介面和實現分開,增強可維護性 實現細節改變時,使用該類的客戶端程式不需要改變 繼承 1.描述聯結類的層次模型 2.通過抽象,表達共性,實現類的重用 3.通過子類增加方法和屬性以及重寫方法,表達差異性 多型 1.遮蔽子類的差異性,針對共性 介面程式設計...

OOP三大特性之封裝

封裝簡介 什麼是封裝 對外部隱藏實現細節,並且提供簡單的介面 封裝的目的 1 提高安全性 封裝資料 2 隔離複雜度 封裝方法 如何封裝 使用特殊語法,給要隱藏的變數前加雙下劃線 其實這僅僅這是一種變形操作且僅僅只在類定義階段發生變形 類中所有雙下劃線開頭的名稱如 x都會在類定義時自動變形成 類名 x...

理解java的三大特性之多型

物件導向的三大特性 封裝 繼承 多型。封裝和繼承幾乎都是為多型而準備的。這是我們最後乙個概念,也是最重要的知識點。一 概念 多型的定義 指允許不同類的物件對同一訊息做出響應。即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式。傳送訊息就是函式呼叫 實現多型的技術稱為 動態繫結 dynamic ...