標籤:
抽象:
象就是有點模糊的意思,還沒確定好的意思。
就比方要定義一個方法和類。但還沒確定怎麼去實現它的具體一點的子方法,那我就可以用抽象類別或介面。具體怎麼用,要做什麼,我不用關心,由使用的人自己去定義去實現。
封裝:
屬性可用來描述同一類事物的特徵,方法可描述一類事物可做的操作。封裝就是把屬於同一類事物的共性(包括屬性與方法)歸到一個類中,以方便使用。
概念:
封裝也稱為資訊隱藏,是指利用抽象資料類型將資料和基於資料的操作封裝在一起,使其構成一個不可分割的獨立實體,資料被保護在抽象資料類型的內部,儘可能地隱藏內部的細節,只保留一些對外介面使之與外部發生聯絡。系統的其他部分只有通過包裹在資料外面的被授權的操作來與這個抽象資料類型交流與互動。也就是說,使用者無需知道對象內部方法的實現細節,但可以根據對象提供的外部介面(對象名和參數)訪問該對象。
好處:
(1)實現了專業的分工。將能實現某一特定功能的代碼封裝成一個獨立的實體後,各程式員可以在需要的時候調用,從而實現了專業的分工。
(2)隱藏資訊,實現細節。通過控制存取權限可以將可以將不想讓用戶端程式員看到的資訊隱藏起來,如某客戶的銀行的密碼需要保密,只能對該客戶開發許可權。
繼承:
個性對共性的屬性與方法的接受,並加入個性特有的屬性與方法
繼承後子類自動擁有了父類的屬性和方法,但特別注意的是,父類的私人屬性和構造方法並不能被繼承。
另外子類可以寫自己特有的屬性和方法,目的是實現功能的擴充,子類也可以複寫父類的方法即方法的重寫。實際就是多態性
概念:
一個類繼承另一個類,則稱繼承的類為子類,被繼承的類為父類。
子類與父類的關係並不是日常生活中的父子關係,子類與父類而是一種特殊化與一般化的關係,是is-a的關係,子類是父類更加詳細的分類。如class dog extends animal,就可以理解為dog is a animal.注意設計繼承的時候,若要讓某個類能繼承,父類需適當開放存取權限,遵循裡氏代換原則,即向修改關閉對擴充開放,也就是開-閉原則。
好處:
實現代碼的複用。
多態:
多態的概念發展出來,是以封裝和繼承為基礎的。
多態就是在抽象的層面上實施一個統一的行為,到個體(具體)的層面上時,這個統一的行為會因為個體(具體)的形態特徵而實施自己的特徵行為。(針對一個抽象的事,對於內部個體又能找到其自身的行為去執行。)
概念:
相同的事物,調用其相同的方法,參數也相同時,但表現的行為卻不同。
理解:
子類以父類的身份出現,但做事情時還是以自己的方法實現。子類以父類的身份出現需要向上轉型(upcast),其中向上轉型是由JVM自動實現的,是安全的,但向下轉型(downcast)是不安全的,需要強制轉換。子類以父類的身份出現時自己特有的屬性和方法將不能使用。
Java基礎-四大特性理解(抽象、封裝、繼承、多態)