日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php多态实现,PHP面向对象之旅:PHP的多态

發布時間:2024/4/19 php 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php多态实现,PHP面向对象之旅:PHP的多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

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

一個類的任何子類對象都可以滿足以當前類型作為類型提示的類型要求。所有實現這個接口的類,都可以滿足以接口類型作為類型提示的方法參數要求。簡單的說,一個類擁有其父類、和已實現接口的身份。

通過實現接口實現多態

下面的例子中,UserAdmin類的靜態方法,要求一個User類型的參數。

在后面的使用中,傳遞了一個實現了User接口的類NormalUser的實例。代碼成功運行。

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{ //操作.

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

$_user->setName($_userName);

}

}

$normalUser = new NormalUser();

UserAdmin::ChangeUserName($normalUser,"Tom");//這里傳入的是 NormalUser的實例.

echo $normalUser->getName();

?>

程序運行結果:

Tom

通過繼承關系實現多態

下面是類和子類的關系。

class User{ // User接口

public function getName(){}

}

class NormalUser extends User { // 繼承自User類

private $name;

public function getName(){

return $this->name;

}

public function setName($_name){

$this->name = $_name;

}

}

class UserAdmin{ //操作.

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

$_user->setName($_userName);

}

}

$normalUser = new NormalUser();

UserAdmin::ChangeUserName($normalUser,"Tom");//這里傳入的是 NormalUser的實例.

echo $normalUser->getName();

?>

程序運行結果:

Tom

延伸閱讀

此文章所在專題列表如下:

總結

以上是生活随笔為你收集整理的php多态实现,PHP面向对象之旅:PHP的多态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。