现实生活的例子:
让我们看现实中的一个例子。我们的电脑有USB接口,你可以选择在这个USB接口上插入一个鼠标,键盘,或者是手机,硬盘都可以,电脑就会进行不同的操作。我们在Pet这个类中定义了一个eat抽象方法,然后在它的子类Cat和Dog类里面分别对它们进行实现。猫和狗虽然都吃东西,但是它们吃东西的细节是不一样的,比如猫是喵喵的吃,而狗是汪汪的吃。这对继承中抽象方法的实现就是类的多态的体现。
interface USB{
public function run(); //提供一个公有的USB接口
}
class Mouse implements USB{ //对USB接口的实现
public function run(){ //鼠标的运行方式
echo '鼠标可以使用...<br/>';
}
}
class Micro implements USB{
public function run(){ //麦克风的运行方式
echo '麦克风可以使用...<br/>';
}
}
class Computer{
public function useUSB($usbObj){ //传入某一个类的对象,实现多态调用,不同类别的对象调用不同的方法。
$usbObj->run();
}
}
$computer1=new Computer;
$computer1->useUSB(new Mouse); //传入一个mouse对象,调用mouse类的run方法
$computer1->useUSB(new Micro); //传入一个Micro对象,调用Micro类的run方法