7.9.1 PHP多态的应用实例
面向对象的特性多态
对象的多态性是指在父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在父类及其各个子类中具有不同的语义。
例如:"几何图形"的"绘图"方法,"椭圆"和"多边形"都是"几何图"的子类,其"绘图"方法功能不同。
<?php
/* 多态特性
*
* 1. 程序扩展准备
*
* 技术:
* 1. 必须有继承关系, 父类最好是接口或抽象类
*
*
*
*/
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 "加载鼠标成功!<br>";
}
function run() {
echo "运行鼠标功能!<br>";
}
function stop() {
echo "鼠标工作结束!<br>";
}
}
class KeyPress implements USB {
function load() {
echo "加载键盘成功!<br>";
}
function run() {
echo "运行键盘成功!<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();