7.9.1 PHP多態(tài)的應(yīng)用實(shí)例
面向?qū)ο蟮奶匦远鄳B(tài)
對(duì)象的多態(tài)性是指在父類中定義的屬性或行為被子類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或行為在父類及其各個(gè)子類中具有不同的語(yǔ)義。
例如:"幾何圖形"的"繪圖"方法,"橢圓"和"多邊形"都是"幾何圖"的子類,其"繪圖"方法功能不同。
<?php
/* 多態(tài)特性
*
* 1. 程序擴(kuò)展準(zhǔn)備
*
* 技術(shù):
* 1. 必須有繼承關(guān)系, 父類最好是接口或抽象類
*
*
*
*/
interface USB {
const WIDTH = 12;
const HEIGHT = 3;
function load();
function run();
function stop();
}
class Cumputer {
function useUSB(USB $usb) {
$usb -> load();
$usb -> run();
$usb -> stop();
}
}
class Mouse implements USB{
function load() {
echo "加載鼠標(biāo)成功!<br>";
}
function run() {
echo "運(yùn)行鼠標(biāo)功能!<br>";
}
function stop() {
echo "鼠標(biāo)工作結(jié)束!<br>";
}
}
class KeyPress implements USB {
function load() {
echo "加載鍵盤成功!<br>";
}
function run() {
echo "運(yùn)行鍵盤成功!<br>";
}
function stop() {
echo "停止鍵盤使用!<br>";
}
}
class Worker {
function work() {
$c = new Cumputer();
$m = new Mouse;
$k = new KeyPress;
$c->useUSB($k);
$c->useUSB($m);
}
}
$w = new Worker;
$w -> work();