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

相关笔记

更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值