《PHP學習:舉例講解PHP面對對象編程的多態》要點:
本文介紹了PHP學習:舉例講解PHP面對對象編程的多態,希望對您有用。如果有疑問,可以聯系我們。
PHP應用什么是多態?
多態性,其來自于dictionary.com的定義是"以不同形式,階段或者類型出現在獨立的組織中或者同種組織中,而不存在根本區別."由該定義,我們可以認為,多態性是一種通過多種狀態或階段來描述相同對象的編程方式.其實,它的真正意義在于:實際開發中,我們只需要關注一個接口或基類的編程,而不必擔心一個對象所屬于的具體類(class).
如果你熟悉設計模式,即使只是有個初步了解,那么你也會了解這個概念.事實上,PHP5多態性可能是基于模式設計編程中的最偉大的工具.它允許我們以一種邏輯的方式來組織相類似的對象從而實現在具體編碼時不必擔心對象的具體類型;而且,我們只需要對一個所期望的接口或基類編程即可.一個應用程序越抽象,則它就顯得越靈活--而多態性是對行為加以抽象的最好的方式之一.
例如,讓我們考慮一個叫Person的類.我們可以用稱為David,Charles和Alejandro的類來子類化Person.Person有一個抽象辦法AcceptFeedback(),所有的子類都要實現這個辦法.這意味著,任何使用基類Person的子類的代碼都能調用辦法AcceptFeedback().你不必檢查該對象是一個David還是一個Alejandro,僅知道它是一個Person就夠了.結果是,你的代碼只需關注"最小公分母"-Person類即可.
在這個示例中的Person類也可以被創建為一個接口.當然,與上面相比存在一些區別,主要在于:一個接口并沒有給出任何行為,而僅確定了一組規則.一個Person接口要求的是"你必須支持AddFeedback()辦法",而一個Person類可以提供一些AddFeedback()辦法的缺省代碼-你對之的理解可以是"如果你不選擇支持AddFeedback(),那么你應該提供一種缺省實現."至于如何選擇接口或基類則并非本文的主題;但是,一般說來,你需要通過基類來實現一個缺省的辦法.如果你能夠簡單地勾勒出你的類所要實現的一組期望的功能,那么你也可以使用一個接口.
PHP應用通俗理解
多態最直接的定義就是讓具有繼承關系的不同類對象,可以對相同名稱的成員函數調用,產生不同的反應結果
PHP應用多態的代碼
PHP應用???
PHP應用
<?php
/**
* 聲明接口Demo
* @author wzy
*
*/
interface Demo
{
const NAME = "wangzhengyi";
const AGE = 25;
function fun1 (); // 聲明辦法默認是public abstract
function fun2 ();
}
class One implements Demo
{
public function fun1 ()
{
echo Demo::NAME . "就讀于中國傳媒大學";
}
public function fun2 ()
{
echo Demo::NAME . "的年齡是" . Demo::AGE;
}
}
class Two implements Demo
{
public function fun1 ()
{
echo Demo::NAME . "在北京靈創眾和科技有限公司實習中";
}
public function fun2 ()
{
echo Demo::NAME . "去年的年齡是24";
}
}
// 同一個接口,實現同一個辦法,不同的對象,反應結果不同.這就是多態的表現和應用
$one = new One();
$one->fun1(); // wangzhengyi就讀于中國傳媒大學
$one->fun2(); // wangzhengyi的年齡是25
echo "<br>";
$two = new Two();
$two->fun1(); // wangzhengyi在北京靈創眾和科技有限公司實習中
$two->fun2(); // wangzhengyi去年的年齡是24
《PHP學習:舉例講解PHP面對對象編程的多態》是否對您有啟發,歡迎查看更多與《PHP學習:舉例講解PHP面對對象編程的多態》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/8802.html