/*

?* 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设计模式通过继承实现多态相关推荐

  1. python中的继承与多态_Python3 与 C# 面向对象之~继承与多态

    2.继承               ¶ 2.1.单继承               ¶ 在OOP中,当我们定义一个Class的时候,可以从某个现有的Class继承 新的Class称为子类,而被继承的 ...

  2. 【Java挠头】继承、抽象、接口、多态、向上转型、向下转型等精妙干货

    –本文摘要–     1.本文的目标读者:是了解Java基础,且对面向对象概念有所了解,但是对Java中继承.抽象类.接口.多态等等概念搞不清的初学者.     2.本文的内容摘要:讲述Java中的一 ...

  3. java 封装 继承 堕胎_Java的继承、封装和多态

    一.继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 继承的特性 子类拥有父类非 private 的属性.方法. ...

  4. C++工作笔记- C++中的动态类型与动态绑定、虚函数、运行时多态的实现

    动态类型与静态类型 静态类型 是指不需要考虑表达式的执行期语义,仅分析程序文本而决定的表达式类型.静态类型仅依赖于包含表达式的程序文本的形式,而在程序运行时不会改变.通俗的讲,就是上下文无关,在编译时 ...

  5. python编程语言继承_Python 面向对象编程——继承和多态

    <基本定义> 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Ba ...

  6. c语言编程 菲薄拉,C语言设计模式-封装-继承-多态

    快过年了,手头的工作慢慢也就少了,所以,研究技术的时间就多了很多时间,前些天在CSDN一博客看到有大牛在讨论C的设计模式,正好看到了,我也有兴趣转发,修改,研究一下. 记得读大学的时候,老师就告诉我们 ...

  7. 访问修饰符、常见的包以及包的权限和包的导入(inport关键字)、继承(super关键字)、多态(向上和向下转型)

    IDEA中快捷生成getter/setter的快捷键为 alt+inser(enter) getter/setter命名规范:都是以gte/set单词开头+要操作的属性名称 一.访问修饰符 Java中 ...

  8. 【Java语言基础】面向对象之封装、继承、抽象类、接口、多态综合知识习题及总结day11

    这几天逐渐被idea所折服,越来越喜欢这个优雅又强大的代码编辑器,有很多人说idea对很多初学者不友好,但是在我看来,只要你足够自律,并且英语不会太差,语法上关键的几个单词没什么大问题,idea对初学 ...

  9. Eclipse,静态,继承,封装,this,super,重写,重载,多态,final,冒泡排序,选择排序,抽象类,接口,内部类

    文章目录 Eclipse工具中java项目的工程结构 静态代码块的书写格式 静态代码块,构造代码块,构造方法的优先级 static关键字的特点 封装的概念 private关键字的特点 面向对象思想特点 ...

最新文章

  1. 企业工作流程化重要吗?
  2. C++_泛型编程与标准库(二)
  3. NA-NP-IE系列实验35:标准ACL
  4. ghost一键还原如何使用
  5. 关于在WINDOWS XP 下运行的PIX模拟器
  6. OpenJudge/Poj 1163 The Triangle
  7. java实现日期让随动变_java工具类(四)之实现日期随意跳转
  8. 使用Excel公式,获取 全路径中 的 文件名
  9. dspic flash不够后,选择优化等级
  10. 常见B/S系统架构设计
  11. java小数的数据类型_Java的基本数据类型
  12. 基于python的大数据分析基础及实战pdf下载_Cloudera Hadoop大数据平台实战指南 PDF 下载...
  13. gis生成道路中心线_ArcGIS方法-利用到路面提取道路中心线的方法
  14. 基于数组判断字符串是否是回文
  15. 全球与中国无线门铃对讲设备市场深度研究分析报告
  16. 巴比特独家丨从0.06%飙涨到30%,BAT在Compound的利率飙涨背后实际危机四伏
  17. python读取excel(读写处理xls或xlsx)
  18. 个人博客开源系统XBlog介绍和部署
  19. Ubuntu18.04 intel wifi6 ax201无线网卡驱动安装
  20. DTO DAO VO BO PO POJO区别

热门文章

  1. JSP页面的执行过程
  2. 请立即弃用 Notepad++,还有 5 款更牛逼的选择!
  3. String类为什么被设计为不可变的?
  4. java数字转字符串及字符串转数字
  5. 【深入Java虚拟机JVM 07】JVM如何判断对象已死
  6. 漫画说算法--动态规划算法三(绝对通俗易懂,非常棒)
  7. scihub只能用doi查吗_同步带轮齿形加工只能用滚齿机吗?
  8. 爬取虎牙之二:试用htmlunit模拟js爬取ajax页面
  9. Spring之Bean的配置(一)
  10. tinyxml语法讲解之写xml