本文章來給各位同學介紹關於PHP物件導向開發之類的多態詳解,希望此教程對各位同學有所協助。
類的多態
1.多態的介紹和優勢。
2.運算子:instanceof。
3.多態的簡單應用。
1.多態的介紹和優勢
介紹:多態性是繼承抽象和繼承後,物件導向語言的第三特徵。
例子:USB介面,插上不同的東西會使用不同的功能。
優勢:OOP並不僅僅是把很多函數和功能集合起來,目的而是使用類,繼承,多態的方式描述我們生活中的一種情況。
2.運算子:instanceof
PHP一個類型運算子,用來測定一個給定的對象是否來自指定的對象
格式:
| 代碼如下 |
複製代碼 |
| class A {} class B {} $thing = new A; if ($thing instanceof A) { echo "A"; } if ($thing instanceof B) { echo "B"; } |
3.多態的簡單應用
執行個體1:
| 代碼如下 |
複製代碼 |
| class A { } class B { } $new = new A; if ($new instanceof A) { echo "A"; } if ($new instanceof B) { echo "B"; } ?> |
執行個體2:
| 代碼如下 |
複製代碼 |
| interface MyUsb { function type(); function alert(); } class Zip implements MyUsb { function type() { echo "2.0"; } function alert() { echo "隨身碟驅動正在檢測…… "; } } class Mp3 implements MyUsb { function type() { echo "1.0"; } function alert() { echo "MP3驅動正在檢測……"; } } class MyPc { function Add_Usb($what) { $what->type(); $what->alert(); } } $p = new MyPc(); $zip = new Zip(); $mp3 = new Mp3(); $p->Add_Usb($zip); $p->Add_Usb($mp3); ?> |
補充一個執行個體213.29.11.16更新
繼承和多態
/* 父類 */
class MyObject{
public $object_name; //圖書名稱
public $object_price; //圖書價格
public $object_num; //圖書數量
public $object_agio; //圖書折扣
function __construct($name,$price,$num,$agio){ //建構函式
$this -> object_name = $name;
$this -> object_price = $price;
$this -> object_num = $num;
$this -> object_agio = $agio;
}
function showMe(){ //輸出函數
echo '這句話不會顯示。';
}
}
/* 子類Book */
class Book extends MyObject{ //MyObject的子類。
public $book_type; //類別
function __construct($type,$num){ //聲明構造方法
$this -> book_type = $type;
$this -> object_num = $num;
}
function showMe(){ //重寫父類中的showMe方法
return '本次新進'.$this -> book_type.'圖書'.$this->object_num.'本
';
}
}
/* 子類Elec */
class Elec extends MyObject{ //MyObject的另一個子類
function showMe(){ //重寫父類中的showMe方法
return '熱賣圖書:'.$this -> object_name.'
原價:'.$this -> object_price.'
特價:'.$this -> object_price * $this -> object_agio;
}
}
/* 執行個體化對象 */
$c_book = new Book('電腦類',1000); //聲明一個Book子類對象
$h_elec = new Elec('PHP函數參考大全',98,3,0.8); //聲明一個Elec子類對象
echo $c_book->showMe()."
"; //輸出Book子類的showMe()方法
echo $h_elec->showMe(); //輸出Elec子類的是showMe()方法
?>
http://www.bkjia.com/PHPjc/632641.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632641.htmlTechArticle本文章來給各位同學介紹關於PHP物件導向開發之類的多態詳解,希望此教程對各位同學有所協助。 類的多態 1.多態的介紹和優勢。 2.運算子...