封裝、繼承和多態

        今天兩次接觸到封裝、繼承和多態,第一次是上午進行大話設計模式討論學習的時候,第二次是下午老師講課時提到了這三個概念。那麼什麼是封裝、繼承和多態呢?

        面向對象的三個基本特徵(封裝、繼承和多態)。

      封裝

        每個對象都包含它能進行操作所需要的所有的信息,這個特性稱爲封裝。因此對象不必依賴其他對象來完成自己的操作。

        封裝的好處:1)良好的封裝可以減少耦合性。2)類內部的實現可以自由的修改。3)類具有清晰的對外接口。

        比如我們正在使用的電腦。我們只需要對其通電,打開,操作,斷電就可以,他的功能就是滿足用戶的需求。但是內部是如何協作完成的,怎麼進行的,我們都不知道。這些功能都被電腦外殼封裝起來,封裝的作用就是保護這些設備。而我們只需要進行鍵盤控制和鼠標控制來完成與電腦的溝通。
        面向對象中真正有震撼力,有很大作用的是繼承和多態。先說一個不是很恰當但是很容易理解的(剛剛經歷)。逛淘寶的時候,我的訂單一欄會顯示你在哪一家店買了什麼,可以點擊再次預約,然後加入購物車中在進行購買,這就相當於繼承。而在購物車中進行數量改變,刪除等就相當於是多態。接下來詳細說一下這兩個

      繼承

        繼承定義  類是如何相互關聯、共享特性。繼承的工作方式是,定義父類(基類)和子類(派生類),其中子類繼承父類的所有特性,子類還可以定義新的特性。         

        就比如兒子和父親,兒子繼承父親的基因,或者繼承家產等。除此之外,兒子還可以有初次之外的其他特徵,比如會唱歌,會跳舞等等,如果真的只是單單繼承就沒有意義了。

        子類繼承父類需要注意以下三點:1)子類擁有父親的非private的屬性和功能;2)子類具有自己的屬性和功能;子類可以擴展父類沒有的屬性和功能;3)子類還可以以自己的方式實現父類的功能(方法重寫)

繼承的實現方式?

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

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

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

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

        實現繼承是指使用基類的屬性和方法而無需額外編碼的能力;
        接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;
        可視繼承是指子窗體(類)使用基窗體(類)的外觀和實現代碼的能力。
        在考慮使用繼承時,有一點需要注意,那就是兩個類之間的關係應該是“屬於”關係。例如,Employee 是一個人,Manag
er也是一個人,因此這兩個類都可以繼承 Person 類。但是 Leg 類卻不能繼承 Person 類,因爲腿並不是一個人。

     多態(重載(overload)和重寫(override)是實現多態的兩種主要方式

      通俗理解就是多種形態:【變形金剛,可以變形,可以跑,可以殺人等】就是對象可以表現多個類型的能力

       允許你將父對象設置成爲和一個或更多的他的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。

        多態需要注意以下三點:1)子類以父類的身份出現;2)子類在工作室以自己的方式實現;3)子類以父類的身份出現時,子類特有的屬性和方法不能使用

       未完待續……理解還不是很透徹,後期會優化。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章