一、封裝
每個物件包含它能進行操作所需要的所有資訊,這個特性稱為封裝,因此物件不必依賴其他物件來進行自己的操作。將方法、屬性、字段包裝在類中,通過例項化類來生成物件。
封裝的好處:
1、好的封裝能減少耦合
2、類內部的實現可以自由修改
3、類具有清晰的對外介面
封裝就像建房子,類就是房子,屬性是門窗,欄位是房子裡的東西,方法是人的行為。屬性對字段有保護作用,防止欄位被隨意的修改或讀取。
二、繼承
物件的繼承代表一種「is-a」關係,「子類is父類」。子類具有(繼承)父類的所有特性,也可以定義自己獨有的特性。
總結:1、子類具有父類非private的屬性和方法
2、子類可以擴充套件父類沒有的屬性和方法
3、子類可以重寫父類的方法
繼承的缺點:子類和父類具有強耦合性。
當兩個類具有「is-a」關係時,適合用繼承;當兩個類具有"has-a"關係時,不適合用繼承,比如,胳膊不適合繼承自人。
三、多型
多型表示不同的物件可以執行相同的動作,但要通過他們自己的實現**來執行。比如貓和狗繼承自動物,貓叫和狗叫都是相同的動作-動物叫,但是實現方式不同。
總結:1、子類可以以父類的身份出現 (使用父類物件的地方都可以用子類來代替)
2、子類在工作時以自己的方式來實現
3、子類以父類的身份出現時,子類特有的方法和屬性不能使用
多型的實現方式:
將父類的成員(除了欄位外的其他成員,包括方法、屬性、事件、索引器)宣告為虛擬的:在該成員返回值型別之前加virtual關鍵字(虛方法可以有自己的實現);子類通過overrid(重寫)將父類實現替換為自己的實現。
多型的使用方式:以父類來宣告,以子類的方式來例項化。比如在呼叫「動物叫」方法的地方,都可以替換成」貓叫「或」狗叫「,即不同的物件執行相同的動作。
物件導向三大特性
什麼是物件導向呢?之前我們做一件事的時候,常常是確定,先幹什麼,然後怎麼做,最後可以完事了。其實我們不妨這麼想一下,我們做事的時候是可以這樣的 這件事中涉及了什麼物件角色?如果我要把這件事做成那麼就需要物件之間是如何協作的?第二種方法,就是今天說的物件導向的方法了,好處正在慢慢體會。今天我想說的物件...
物件導向三大特性
0x00 嘮嘮叨叨 只是做乙個概念的記錄 0x01 物件導向的三大特性 n 封裝 把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。類將成員變數和成員函式封裝在類的內部,根據需要設定訪問許可權,通過成員函式管理內部狀態。n 繼承 繼承所表達的是類...
物件導向三大特性
封裝 oo將萬物都視為 物件 object 任何物件都具有特性和行為。我們將其特性稱為 成員變數 membervarible 將其行為稱之為 成員函式 member function 被封裝的特性只能通過特定的行為去訪問。好處 良好的封裝可以降低耦合度 類的內部可以自由修改 類具有對外的清晰介面。繼...