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设计模式通过继承实现多态相关推荐
- python中的继承与多态_Python3 与 C# 面向对象之~继承与多态
2.继承 ¶ 2.1.单继承 ¶ 在OOP中,当我们定义一个Class的时候,可以从某个现有的Class继承 新的Class称为子类,而被继承的 ...
- 【Java挠头】继承、抽象、接口、多态、向上转型、向下转型等精妙干货
–本文摘要– 1.本文的目标读者:是了解Java基础,且对面向对象概念有所了解,但是对Java中继承.抽象类.接口.多态等等概念搞不清的初学者. 2.本文的内容摘要:讲述Java中的一 ...
- java 封装 继承 堕胎_Java的继承、封装和多态
一.继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 继承的特性 子类拥有父类非 private 的属性.方法. ...
- C++工作笔记- C++中的动态类型与动态绑定、虚函数、运行时多态的实现
动态类型与静态类型 静态类型 是指不需要考虑表达式的执行期语义,仅分析程序文本而决定的表达式类型.静态类型仅依赖于包含表达式的程序文本的形式,而在程序运行时不会改变.通俗的讲,就是上下文无关,在编译时 ...
- python编程语言继承_Python 面向对象编程——继承和多态
<基本定义> 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Ba ...
- c语言编程 菲薄拉,C语言设计模式-封装-继承-多态
快过年了,手头的工作慢慢也就少了,所以,研究技术的时间就多了很多时间,前些天在CSDN一博客看到有大牛在讨论C的设计模式,正好看到了,我也有兴趣转发,修改,研究一下. 记得读大学的时候,老师就告诉我们 ...
- 访问修饰符、常见的包以及包的权限和包的导入(inport关键字)、继承(super关键字)、多态(向上和向下转型)
IDEA中快捷生成getter/setter的快捷键为 alt+inser(enter) getter/setter命名规范:都是以gte/set单词开头+要操作的属性名称 一.访问修饰符 Java中 ...
- 【Java语言基础】面向对象之封装、继承、抽象类、接口、多态综合知识习题及总结day11
这几天逐渐被idea所折服,越来越喜欢这个优雅又强大的代码编辑器,有很多人说idea对很多初学者不友好,但是在我看来,只要你足够自律,并且英语不会太差,语法上关键的几个单词没什么大问题,idea对初学 ...
- Eclipse,静态,继承,封装,this,super,重写,重载,多态,final,冒泡排序,选择排序,抽象类,接口,内部类
文章目录 Eclipse工具中java项目的工程结构 静态代码块的书写格式 静态代码块,构造代码块,构造方法的优先级 static关键字的特点 封装的概念 private关键字的特点 面向对象思想特点 ...
最新文章
- 企业工作流程化重要吗?
- C++_泛型编程与标准库(二)
- NA-NP-IE系列实验35:标准ACL
- ghost一键还原如何使用
- 关于在WINDOWS XP 下运行的PIX模拟器
- OpenJudge/Poj 1163 The Triangle
- java实现日期让随动变_java工具类(四)之实现日期随意跳转
- 使用Excel公式,获取 全路径中 的 文件名
- dspic flash不够后,选择优化等级
- 常见B/S系统架构设计
- java小数的数据类型_Java的基本数据类型
- 基于python的大数据分析基础及实战pdf下载_Cloudera Hadoop大数据平台实战指南 PDF 下载...
- gis生成道路中心线_ArcGIS方法-利用到路面提取道路中心线的方法
- 基于数组判断字符串是否是回文
- 全球与中国无线门铃对讲设备市场深度研究分析报告
- 巴比特独家丨从0.06%飙涨到30%,BAT在Compound的利率飙涨背后实际危机四伏
- python读取excel(读写处理xls或xlsx)
- 个人博客开源系统XBlog介绍和部署
- Ubuntu18.04 intel wifi6 ax201无线网卡驱动安装
- DTO DAO VO BO PO POJO区别