php使用类继承解决代码重复的问题

php使用类继承解决代码重复的问题

ID:28446749

大小:75.56 KB

页数:5页

时间:2018-12-10

php使用类继承解决代码重复的问题_第1页
php使用类继承解决代码重复的问题_第2页
php使用类继承解决代码重复的问题_第3页
php使用类继承解决代码重复的问题_第4页
php使用类继承解决代码重复的问题_第5页
资源描述:

《php使用类继承解决代码重复的问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、php使用类继承解决代码重复的问题这篇文章主要介绍了php使用类继承解决代码重复的问题,实例分析了继承的原理与使用技巧,非常具有实用价值,需要的朋友可以参考下本文实例讲述了php使用类继承解决代码重复的问题。分享给大家供大家参考。具体分析如下:继承直白地说就是给一个类建一个或多个子类,要创建子类就必须在类声明中使用extends关键字,新类名在前,extends在中,父类名在后。下例中,我们创建两个新类,BookProduct和Cdproduct,它们都继承自ShopProduct类。代码如下:It;?phpheaderCContent-type

2、:text/html:charset=utf_8’);//从这篇开始,类名首字母一律大写,规范写法classShopProduct{//声明类public$numPages://声明属性public$playLenth:public$title:public$producerMainName;public$producerFirstName;public$price:function_construct($title,$firstNa.me,$ma.inName,$price,$numPages=0,SplayLenth=0){$this-gt;

3、title=$title;//给属性title赋传进来的值$this-gt:producerFirstName=$firstName:$this-gt;producerMainName=$mainName;$this-gt;price=$price;$this-gt;numPages=$numPages;$this-gt;playLenth=$playLenth;functiongetProducer(){//声明方法returrT{$this-gt;producerFirstName}/z./z{$this-gt:producerMainNam

4、e}〃:functiongetSummaryLine(){$base=〃{$this-gt:title}({$this-gt:producerMainName},〃:$base.=〃{$this-gt;producerFirstName})〃;return$base:}classCdProductextendsShopProduct{functiongetPlayLength(){return$this-gt:playLength:}functiongetSummaryLine(){$base=/’{$this-gt;title}({$this-

5、gt;producerMainName},〃;$base.=〃{$this-gt;producerFirstName})〃;$base.=/z:playingtime~{$this-gt;playLength})return$base:classBookProductextendsShopProduct{functiongetNumberOfPages(){return$this-gt:numPages:}functiongetSummaryLine(){$base=//{$this-gt:title}({$this-gt:producerMai

6、nName},〃:$base.=/z{$this-gt:producerFirstName})’’;$base.=//:pagecont-{$this-gt:numPages})/z;return$base;由于子类没有定义构造方法,所以在实例化BookProduct和Cdproduct类时,会自动调用父类ShopProduct的构造方法。子类默认继承了父类所有的public和protected方法与属性(但没有继承private方法与属性,后面会讲到这三个关键字的作用)。也就是说,我们可以在从Cdproduct类实例化的对象中调用getProd

7、ucerO方法,尽管getProducer()是在ShopProduct类中定义的。将一下代码加到上面:代码如下:$product2=newCdProduct("PHP面向对象",〃郭",〃碗瓢盆",7,null,〃7小时〃);print〃美好生活:{$product2~gt:getProducer()}lt;brgt,;//结果是:美好生活:郭碗瓢盆这两个子类都继承了父类的公共部分,但注意,BookProduct和Cdproduct类都覆写了getSummaryLine()方法,提供了自己独特的实现,说明子类可以拓展和修改父类的功能。但该方法在

8、父类中的实现似乎有点多余,因为它的两个子类都重写了该方法,不过其他子类可能会用到它的基本功能。该方法的存在为客户端代码提供了保证:所有的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。