PHP 類的繼承 訪問修飾符 重寫
阿新 • • 發佈:2018-06-06
很多 strong 類的方法 重新 特征 -s 基本 ted 屬性
子類中沒有定義構造方法的時候,會自動調用父類的構造方法。因此實例化子類時,需按照父類的構造方法的形式進行
子類定義了自己的構造方法,則不會調用父類的構造方法 但可以手動調用 parent::__construct();
通常在子類很多時候在構造方法中都應該(需要)去調用父類的構造方法以節省代碼,增加可讀性
重寫 override:
重寫又叫覆蓋,就是將從父類繼承下來的屬性或方法重新定義--- 就是從新寫
重寫必須發生在繼承裏面
註意:子類覆蓋父類的方法,雖然可以去調用父類的同名方法去完成一定的工作。但不是必須的。也有可能父類的該方法所執行的結果並不適合子類,此時子類就去完全自己寫了
重寫的基本要求:
下級的訪問控制權限應該不低於上級的訪問控制權限
上級:public(公共的) 下級只能是 public
上級:protected(受保護的) 下級只能是 protected , public
上級:private(私有的) 下級:private protected public --- 實際此情況無意義 私有的不能覆蓋,而是完全當做自己全新的
最終類final class :
如果某個類不希望對其進行擴展,則可以將其聲明為“最終類”
形式:
final class 類名{ 。。。。類定義。。。。}
最終方法 final method:
如果某個方法不希望被下級類覆蓋,就可以對其生命為“最終方法”
形式:
final function 方法名(){。。。。方法定義。。。。}
類的繼承:
某些類A具有的某些特性,另一個類B,也具有A類的所有特性並且也有自己的特性,此時我們就可以實現B類使用A類的特性信息並繼續添加自己的一些特有的特征信息
關鍵字是:extends
基本概念:
繼承:一個類從另一個已有的類獲得其特性,稱為繼承
派生:從一個已有的類產生一個新的類,稱為派生
也可以理解為:已有類為父類,新建類為子類,父類也叫基類,子類也叫派生類
一個類只能從一個上一級類繼承其特性 叫單繼承
多繼承的話 就是繼承他父類的父類 也就是爺爺類
訪問(權限)修飾符
public:公共的 protected:受保護的 private:私有的
1.public:
用該修飾符 可以在任意位置使用其中包括:
1.某個類的內部
2.某個類的外部
3.某個類的具有具有繼承關系的類的內部
語法形式:
對象->成員 一般
類名::成員 靜態
2.protected:
用該修飾符,可以在當前類或者當前類的上下級具有繼承關系的類中訪問
3.private:
用該修飾符,只能在其所在的類中訪問
parent代表父類:
通常用於在子類中調用父類的成員的時候使用 沒有繼承關系不能用parent
構造方法析構方法:
子類中沒有定義構造方法的時候,會自動調用父類的構造方法。因此實例化子類時,需按照父類的構造方法的形式進行
子類定義了自己的構造方法,則不會調用父類的構造方法 但可以手動調用 parent::__construct();
通常在子類很多時候在構造方法中都應該(需要)去調用父類的構造方法以節省代碼,增加可讀性
重寫 override:
重寫又叫覆蓋,就是將從父類繼承下來的屬性或方法重新定義--- 就是從新寫
重寫必須發生在繼承裏面
註意:子類覆蓋父類的方法,雖然可以去調用父類的同名方法去完成一定的工作。但不是必須的。也有可能父類的該方法所執行的結果並不適合子類,此時子類就去完全自己寫了
重寫的基本要求:
下級的訪問控制權限應該不低於上級的訪問控制權限
上級:public(公共的) 下級只能是 public
上級:protected(受保護的) 下級只能是 protected , public
上級:private(私有的) 下級:private protected public --- 實際此情況無意義 私有的不能覆蓋,而是完全當做自己全新的
最終類final class :
如果某個類不希望對其進行擴展,則可以將其聲明為“最終類”
形式:
final class 類名{ 。。。。類定義。。。。}
最終方法 final method:
如果某個方法不希望被下級類覆蓋,就可以對其生命為“最終方法”
形式:
final function 方法名(){。。。。方法定義。。。。}
PHP 類的繼承 訪問修飾符 重寫