1. 程式人生 > >十二、三大核心特征-多態

十二、三大核心特征-多態

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方法。這種特性就是多態。

十二、三大核心特征-多態