php 多肽实例
多態定義:只關心一個接口或者基類,而不關心一個對象的具體類。(同一類型,不同結果)
這里兩個例子:
第一個,我們發現,基類定義了標準,子類進行了自我規則的實現。這是多態的一個要求。同時,這是滿足重寫;實際上這是不同類的不同表現;沒有嚴格滿足一個接口,或者基類編程。因為你調用的時候不是 stu->showGrade() 而是各自自己的方法;
?
class stu{public function showGrade(){echo "base class"; }}class xiaomin extends stu{public function showGrade(){echo "is son show 80"; } }class xiaoli extends stu{public function showGrade(){echo "is son show 60"; } }function doit($obj){if(get_class($obj) != "stu"){$obj->showGrade();}}doit(new xiaoli()); doit(new xiaomin());?
第二個例子:dovoice 參數規定了$obj 為animal,意識就是用接口 接受了 實現類對象。了向上轉型。這就符合同一類型,不同結果了,這就是多態;
實際上在Java中 會是 animal a = new dog();這樣子的;因為PHP 是若類型語言。沒有對象轉型機制。
interface animal{public function voice(); }class cat implements animal{public function voice(){echo "miao~~~<br>";} }class dog implements animal{public function voice(){echo "wang ~~~<br>";} }function dovoice(animal $obj){$obj->voice(); }dovoice(new dog()); dovoice(new cat());轉自?https://www.jb51.net/article/68451.htm
轉載于:https://www.cnblogs.com/llkbk/p/9990708.html
總結
- 上一篇: Vue(二) 计算属性
- 下一篇: C# winform 后台控制删除动态生