您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
设计模式-说说多态
发布时间:2017-11-30 09:26:46编辑:雪饮阅读()
<?php
//定义一个没有方法体的抽象类(老虎类)
abstract class Tiger{
public abstract function climb();
}
//要想继承抽象类就必须实现抽象类中的每个抽象方法(西虎类)
class XTiger extends Tiger{
public function climb(){
echo '摔下来';
}
}
//猛虎类
class MTiger extends Tiger{
public function climb(){
echo '爬到树顶';
}
}
//驯兽师
class Client{
public static function call(Tiger $hu){
$hu->climb();
}
}
echo "西虎爬树:";
Client::call(new XTiger());
echo "<br/>";
echo "猛虎爬树:";
Client::call(new MTiger());
/*
一句话总结:
同属于一个抽象类(虎类),但猛虎类的对象和西虎类的对象在同一个行为(爬树)上有不同的呈现形态。这就是多态。
扩展:
再如:
一个需求是这样的,技术经理有一个任务,写一个数据库类,但数据库有mysql,oracle,sqlserver.
于是经理先写了核心抽象类(抽象的增删改查方法),然后mysql数据库类交给a程序员,oracle数据库类交给b程序员,sqlserver数据库类交给c程序员。
最后:
a程序员只需要继承技术经理的类,实现mysql的增删改查类。
b程序员只需要继承技术经理的类,实现oracle的增删改查类。
c程序员只需要继承技术经理的类,实现sqlserver的增删改查类。
*/
?>
关键字词:设计模式,多态
上一篇:设计模式-适配器模式
下一篇:设计模式-文章编辑的难题