天天看點

PHP5中實作多态的兩種方法執行個體分享投

多态這個概念,在Java中指的是變量可以指向的對象的類型,可是變量聲明類型的子類。對象一旦建立,它的類型是不變的,多态的是變量

在PHP5中,變量的類型是不确定的,一個變量可以指向任何類型的數值、字元串、對象、資源等。我們無法說PHP5中多态的是變量。

我們隻能說在PHP5中,多态應用在方法參數的類型提示位置。

一個類的任何子類對象都可以滿足以目前類型作為類型提示的類型要求。

所有實作這個接口的類,都可以滿足以接口類型作為類型提示的方法參數要求。

簡單的說,一個類擁有其父類、和已實作接口的身份。

通過實作接口實作多态

代碼如下:

<?php

interface User{ // User接口

    public function  getName();

    public function setName($_name);

}

class NormalUser implements User { // 實作接口的類.

    private $name;

    public function getName(){

        return $this->name;

    }

    public function setName($_name){

        $this->name = $_name;

    }

}

class UserAdmin{ //操作. Cocos2D教程

    public static function  ChangeUserName(User $_user,$_userName){

        $_user->setName($_userName);

    }

}

$normalUser = new NormalUser();

UserAdmin::ChangeUserName($normalUser,"Tom");//這裡傳入的是 NormalUser的執行個體.

echo $normalUser->getName();

?>

繼續閱讀