多态特性
PHP中的多态必须有继承关系,父类最好是接口或抽象类。
interface USB {
const WIDTH = 12;
const HEIGHT = 3;
function load();
function run();
function stop();
}
class PC {
// 参数只能传USB类型的
function useUSB( USB $usb ) {
$usb->load();
$usb->run();
$usb->stop();
}
}
class Mouse implements USB {
function load(){ echo '加载鼠标成功
';}
function run(){ echo '运行鼠标
';}
function stop(){ echo '鼠标工作结束
';}
}
class KeyPress implements USB {
function load(){ echo '加载键盘成功
';}
function run(){ echo '运行键盘
';}
function stop(){ echo '键盘工作结束
';}
}
class Worker {
function work() {
$pc = new PC();
$m = new Mouse;
$k = new KeyPress;
$pc->useUSB( $m );
$pc->useUSB( $k );
}
}
$v = new Worker;
$v->work();
/*
打印结果:
加载鼠标成功
运行鼠标
鼠标工作结束
加载键盘成功
运行键盘
键盘工作结束
*/