一、封裝
封裝,實際就是把屬於同一類事物的共性(包括屬性與方法)歸到一個類中,以方便使用。
概念:在面向對象程式設計方法中,封裝(英語:Encapsulation)是指,一種將抽象性函式接口的實作細節部份包裝、隱藏起來的方法,可以被認為是一個保護屏障,防止該類的代碼和數據被外部類定義的代碼隨機訪問,要訪問該類的代碼和數據,必須通過嚴格的接口控制。
作用:1.實現了專業的分工。將能實現某一特定功能的代碼封裝成一個獨立的實體後,各程序員可以在需要的時候調用,同時也方便修改;
2.方便控制。若程序出現問題或需要更新,可以直接在該類中修改,而不用去修改調用代碼的程序片段;
3.隱藏信息,實現細節。通過控制訪問權限可以將可以將不想讓客戶端程序員看到的信息隱藏起來,如某客戶的銀行的密碼需要保密,只能對該客戶開發權限。
二、繼承
1.概念:繼承,在原有類基礎上增加新的屬性和方法來構造新類的技術。一個類繼承另一個類,則稱繼承的類為子類Sub Class,又叫繼承類,被繼承的類為父類Super Class,又叫超類。私有成員private無法繼承,構造器無法繼承。
語法:在定義子類時:class 子類名稱 extends 超類{
子類新增的成員
}
2.特點:創建子類對象時,也會先創建父類對象,只是沒有對象變量來接收這個父類對象,所以無法調用; 子類可以寫自己特有的屬性和方法,目的是實現功能的擴展,子類也可以復寫父類的方法即方法的重寫。
3.作用:實現代碼的復用。
4.this和super:java中的只讀變量,只能使用,不能修改。this表示本對象、本類、本構造器,super表示父對象、父類、父構造器。
方法或構造器的形參和域名可以重名,但是需要利用this來實現,如:
OverRide,覆寫屬性即重新申明該屬性,覆寫方法即修改方法的內容。
三、多態
1.概念:多態,即多種形態,一個對象屬於多個類,根據上下文、根據實際需要,動態的決定屬於哪個類,執行哪個類中的同名方法。比如"寵物"這個對象,它就有很多不同的表達或實現,比如有小貓、小狗、蜥蜴等等。那麼我到寵物店說"請給我一只寵物",服務員給我小貓、小狗或者蜥蜴都可以,我們就說"寵物"這個對象就具備多態性。
2.條件:1)繼承; 2)覆寫; 3)申明的父類對象卻引用了一個指向於子類的對象;
3.特點:1)相同的事物,調用其相同的方法,參數也相同時,但表現的行為卻不同;
2)多態的概念發展出來,是以封裝和繼承為基礎的;
3)子類以父類的身份出現,但做事情時還是以自己的方法實現。子類以父類的身份出現需要向上轉型(upcast),其中向上轉型是由JVM自動實現的,是安全的,但向下轉型(downcast)是不安全的,需要強制轉換。子類以父類的身份出現時自己特有的屬性和方法將不能使用。
附:一段同時體現java三大特性的代碼