物件導向常用變數以及引數 繼承 作用 (二)

2021-09-08 20:17:12 字數 1700 閱讀 8248

//什麼時候使用繼承 

1 在功能進行擴充套件的時候進行繼承 

2 在功能進行修改的時候(覆蓋掉)

//php繼承特性 

1 支援單一繼承 不支援多重繼承

2 乙個子類之允許有乙個父類 

3 乙個父類可以有多個子類 

//php 繼承關鍵字 

父類 == 基類 == 超累 

子類 == 擴充套件類 == 派生類 

//許可權問題 

public 共有的

1 在子類當中可以被完全繼承

2 子類的成員如果與父類當中的共有成員名稱相同 那麼子類成員會將父類的成員覆蓋 

protected  

1 受保護的成員 在子類當中可以被完全繼承下來 

2 受保護的成員在子類當中如果出現同名的成員會被覆蓋掉 

3 繼承下來的受保護的成員仍然擁有受保護的特性 

private 

1 私有成員在子類當中不能直接拿來使用 沒有被繼承 

//許可權問題 

1  如果父類當中成員屬性為私有的 在子類當中可以理解為繼承了下來 但是沒有放使用 

2  如父類當中擁有共有的成員方法 該成員方法輸出父類當中私有的私有的私有成員屬性  在子類當中可以將該成員方法繼承使用 但是該成員方法擁有輸出父類私有成員屬性的特性同樣會被繼承  

3 如果子類當中的成員屬性與父類的相同 子類的成員沒有辦法將父類的成員屬性覆蓋 

4 父類成員的許可權一定要比子類成員許可權嚴格(小)

private < protected < public 

//常用關鍵字 、

final 裝飾的成員方法不允許在子類當中被重寫 目的為了防止已經寫好的功能被修改 

final 只能裝飾方法和類 不能裝飾成員屬性。

final 裝飾的類不能在被其他類繼承 

static 裝飾成員屬性 在類當中當中的方法體當中要使用self::$屬性名稱來進行訪問  

static 裝飾的成員屬性儲存在記憶體當中的初始化靜態段當中 

在類當中使用$this->屬性  這個屬性是儲存在最當中因此 靜態的成員屬性不能夠使用$this去訪問

靜態的成員屬性在類的外部通過類名::$成員屬性名稱 切記不要使用物件來呼叫 

靜態的成員屬性效率較高 因為不需要例項化成物件就可以訪問呼叫 (也就是說在類內部用self呼叫 外部就是類名呼叫)    

同乙個類 多個物件訪問的靜態成員屬性是同乙個(共享成員屬性)    

靜態的成員方法當中不允許有$this    

靜態的成員方法在類的內部可以使用$this呼叫

靜態的成員方法可以在類的內部使用self::方法名()呼叫

靜態的成員方法在類的外部可以使用物件來呼叫      

靜態的成員方法在類的外部可以使用類名::方法名()呼叫

推薦使用類名呼叫方式 效率較高 靜態的成員方法高於非靜態的方法 

成員方法當中如果沒有包含任何$this 該方法預設為靜態的成員方法 

//常量宣告 

使用const 關鍵字 

類名一般情況下採用大寫 

常量值為標量資料型別 

常量值不要加$

常量在類當中訪問使用self::常量名稱 

常量在類外部訪問使用類名::常量名稱 

instanceof 可以判讀乙個物件是否為乙個類例項化的 

instanceof 可以判讀乙個物件是否為父類的子類的例項化出來的物件 可以追溯哦到父類 

物件導向常用變數以及引數 作用 (一)

魔術方法 補充 忘記兩個 構造方法 1 方法名稱與類名稱相同的方法 2 construct 推薦使用 優先選擇 3 引數 不定 4 觸發時機 當物件new例項化的一瞬間自動呼叫這個方法 作用 隊成員進行初始化的操作 析構方法 1 方法名稱為 destruct 2 引數 無 3 觸發時機 當物件銷毀的...

物件導向繼承中成員變數的關係

在物件導向繼承問題中,子類和父類都會有其成員變數,那麼在訪問類中成員變數時,我們該如何進行理解呢?分為倆種情況 1 子類中成員變數和父類中成員變數的名稱不相同 理解方法 我們在訪問中,直接訪問其名稱即可,因為編譯器會根據你訪問的名稱進行匹配,匹配到相應的成員變數,如果沒有匹配到,則會自動報錯 2 子...

物件導向的封裝 繼承 多型以及建構函式

1 物件導向特點 封裝 繼承 多型。2 建構函式 構造器 原型物件 1 父類 function userclass name,age,word init初始化 userclass.prototype module.exports userclass var u1 new userclass 大雷 1...