物件導向的三大特性:封裝性、繼承性、多型性
一、類的封裝性
將敏感資料保護起來,不被外界訪問。
類的封裝就是將一個功能的方方面面,封裝成一個類,例如:資料庫工具類,把資料庫操作的所有方面全面封裝到類中。
類的封裝性實現,就是透過許可權控制符來實現
在專案中,所有成員屬性,一般都是private、protected許可權
二、類的繼承性
相當於CSS繼承:將上層標籤定義的樣式,繼承到子標籤來使用。多個標籤如果具有相同的樣式,只需要在父標籤定義,再繼承到子標籤來使用。相同的樣式只需要定義一次
如果一個B類擁有了A類的所有特徵,則我們就認為B類繼承了A類。
A類:父類、上層類、基礎類(最頂層的類)
B類:子類、下層類
extends關鍵字,繼承父類
繼承是為了實現功能的升級和擴充套件。如果一個專案不需要升級和擴充套件,則不用繼承。
功能的升級:原來有的功能,對現在的功能進行更加完善的處理。
功能的擴充套件:原來沒有的功能,增加一個新功能
如果專案需要升級和擴充套件功能,不能直接修改原類,需要建立一個子類,並繼承父類
parent關鍵字
self代表當前類,parent代表父類;
self可以呼叫本類的內容:類常量、靜態屬性、靜態方法、成員方法;
parent可以呼叫父類的內容:類常量、靜態屬性、靜態方法、成員方法;
//繼承的格式
class SubClass extends ParentClass{
//子類的功能程式碼
}
語法說明:
1.subclass代表要建立的子類的名稱
2.extends是繼承關鍵字,不區分大小寫
3.ParentClass代表已經存在的父類或者上層類
示例:
三、類的多型
類的多型,就是類的多種形態
類的多型,主要指方法重寫
方法重寫:父類有一個方法,在子類用同樣的名稱再定義一次。
功能升級:父類有的功能,子類的功能比它更完善、更詳盡。透過方法重寫來實現。
如果不需要升級,也不需要擴充套件,繼承就沒有意義
//方法重寫的要求:
//子類中重寫的方法名稱,要與父類方法名稱一致。
//子類中重寫的方法的引數個數,必須要與父類方法的引數個數一致;
//子類中重寫的方法的型別,必須要與父類方法的型別一致;父類是成員的方法,子類必須是成員的方法;父類是靜態方法,子類也必須是靜態方法。
//子類中重寫的方法的許可權,不能低於父類方法的許可權。
//如果父類方法許可權位public,則重寫方法必須是public;
//如果父類方法許可權位protected,則重寫方法必須是public、protected;