十二、三大核心特征-多態
阿新 • • 發佈:2018-02-17
div clas abs 派生 pan ima strac function fun
多態指的是面向對象編程時,屏蔽了子類對象之間的差異,可以使調用對象方法的客戶端代碼中代碼保持通用性,而不必針對每個不同的對象寫不同的實現。
多態的實現依靠的是繼承、抽象方法或接口的特性。
例如:
//父類是一個抽象類Animal abstract class Animal { abstract public function talk(); } //子類Dog class Dog extends Animal { public function talk() { echo ‘新年旺旺‘; } } //子類Cat class Cat extends Animal {public function talk() { echo ‘喵喵‘; } } //客戶端類Person class Person { public function __construct() { $cat = new Cat(); $dog = new Dog(); $this->touchHead($cat);//輸出:喵喵 $this->touchHead($dog);//輸出:新年旺旺 } //摸動物的頭,動物就會叫 privatefunction touchHead(Animal $animal) { $animal->talk(); } }
在touchHead方法中,我們無需知道具體的是哪個對象,只要這個對象是派生於動物父類,就可以調用talk方法。這種特性就是多態。
十二、三大核心特征-多態