php中可以实现多态的是继承,PHP设计模式通过继承实现多态
/*
?* WEB開發筆記 www.chhua.com 每日練習之PHP設計模式繼承的實現
?*/
/*
?* 類說明:某大學開兩門課程,一個是PHP,一個是JAVA,規定不同的價格
?*/
abstract class lesson {//定義一個抽象基類
?protected $lessonType;
?const PHP=1;
?const JAVA=2;
?public function __construct($type=1){
??$this->lessonType=$type;
?}
?
?public function cost(){//計算學費
??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();
/*
?*注:以上就是通過繼承實現類的多態的最簡單的例子,然而會有一個問題,
?*如果課程再有JS,HTML,FLEX 等,是不是SWITCH語句會很長?
?*如果真是是那樣,類的獨立性就不好了,耦合性太重,不利于后期的維護,怎么做?
?*用PHP組合來實現,答案在www.chhua.com找
?*/
?>
自由轉載,轉載請注明: 轉載自WEB開發筆記 www.chhua.com
本文鏈接地址: PHP設計模式通過繼承實現多態 http://www.chhua.com/web-note757
相關筆記
更多
總結
以上是生活随笔為你收集整理的php中可以实现多态的是继承,PHP设计模式通过继承实现多态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java代码怎样连接es,Elastic
- 下一篇: 不错php文件缓存类,一个不错的PHP文