php物件導向 之 多型 重寫覆蓋

2021-06-27 13:47:27 字數 911 閱讀 9353

<?php

class a

} class b extends a }

$a=new b();

$a->cry();

?>

這裡 子類class b 繼承了 父類class a;

但是相對的 class b中 有乙個cry 方法 所有 這裡b例項化後 會優先呼叫 class b的cry 所以會輸出 你妹的;

還有 如果class b要實現覆蓋 必須 方法名和傳遞的引數必須一致 如下 cry裡傳遞了 引數這樣便會報錯了

<?php

class a

} class b extends a }

$a=new b();

$a->cry();

?>

此時 class b中 方法便被改變掉了 預設不會和父類 class a中的覆蓋 但是 又由於 class b中 已經繼承了 class a所以 class b 裡面會出現兩個名稱一樣的方法

即 cry();cry($a) 同乙個類中出現兩個相同的方法 所以會報錯;

(ps【如果子類想覆蓋父類的方法 子類的許可權必須大於父類的許可權 即 若父類為protected function cry(),子類必須為 public function cry()】;private只能本類呼叫 所以不去考慮)

如果子類已經重寫或覆蓋 父類方法後 還想呼叫父類的方法 則可以

<?php

class a

} class b extends a }

$a=new b();

$a->cry();

?>

直接指定父類類名::cry();即可

後續繼續補充.....

php物件導向 之 多型 重寫覆蓋

class a class b extends a a new b a cry 這裡 子類class b 繼承了 父類class a 但是相對的 class b中 有乙個cry 方法 所有 這裡b例項化後 會優先呼叫 class b的cry 所以會輸出 你妹的 還有 如果class b要實現覆蓋 必...

物件導向之多型

多型即事物存在的多種形態 要有繼承 要有方法重寫 要有父類引用指向子類物件 1,多型中的成員訪問特點之成員變數 編譯看左邊 父類 執行看左邊 父類 2,多型中的成員訪問特點之成員方法 編譯看左邊 父類 執行看右邊 子類 3,多型中的成員訪問特點之靜態成員方法 編譯看左邊 父類 執行看左邊 父類 總結...

物件導向之多型

多型指的是一類事物有多種形態,多型性是指在不考慮例項型別的情況下使用例項 class animals def run self print running class dog animals def run self print dog is running class pig animals de...