php中可以实现多态的是继承,PHP设计模式通过继承实现多态
/*
?* WEB開(kāi)發(fā)筆記 www.chhua.com 每日練習(xí)之PHP設(shè)計(jì)模式繼承的實(shí)現(xiàn)
?*/
/*
?* 類說(shuō)明:某大學(xué)開(kāi)兩門(mén)課程,一個(gè)是PHP,一個(gè)是JAVA,規(guī)定不同的價(jià)格
?*/
abstract class lesson {//定義一個(gè)抽象基類
?protected $lessonType;
?const PHP=1;
?const JAVA=2;
?public function __construct($type=1){
??$this->lessonType=$type;
?}
?
?public function cost(){//計(jì)算學(xué)費(fèi)
??switch ($this->lessonType){
???case self::PHP:
????return 30;
????break;
???case self::JAVA:
????return 50;
????break;
???default:
????$this->lessonType=self::PHP;
????return 30;??
??}
?}
?
?public function getType(){//返回類型字符串
??switch ($this->lessonType){
???case self::PHP:
????return “Lesson For PHP”;
????break;
???case self::JAVA:
????return “Lesson For JAVA”;
????break;
???default:
????$this->lessonType=self::PHP;
????return “Lesson For PHP”;?
??}
?}
}
class lessonPHP extends lesson{
?public function getFeiyong(){//自己的特性方法
??echo $this->cost();
?}
}
class lessonJAVA extends lesson{
?public function getLessonName(){//自己的特性方法
??echo $this->getType();
?}
}
$phpLesson=new lessonPHP(1);
$javaLesson= new lessonJAVA(2);
$phpLesson->getFeiyong();
$javaLesson->getLessonName();
/*
?*注:以上就是通過(guò)繼承實(shí)現(xiàn)類的多態(tài)的最簡(jiǎn)單的例子,然而會(huì)有一個(gè)問(wèn)題,
?*如果課程再有JS,HTML,FLEX 等,是不是SWITCH語(yǔ)句會(huì)很長(zhǎng)?
?*如果真是是那樣,類的獨(dú)立性就不好了,耦合性太重,不利于后期的維護(hù),怎么做?
?*用PHP組合來(lái)實(shí)現(xiàn),答案在www.chhua.com找
?*/
?>
自由轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明: 轉(zhuǎn)載自WEB開(kāi)發(fā)筆記 www.chhua.com
本文鏈接地址: PHP設(shè)計(jì)模式通過(guò)繼承實(shí)現(xiàn)多態(tài) http://www.chhua.com/web-note757
相關(guān)筆記
更多
總結(jié)
以上是生活随笔為你收集整理的php中可以实现多态的是继承,PHP设计模式通过继承实现多态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java代码怎样连接es,Elastic
- 下一篇: mysql+永久+关闭提交,MySQL学