- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
php使用类继承解决代码重复的问题
这篇文章主要介绍了 php使用类继承解决代码重复的 问题,实例分析了继承的原理与使用技巧,非常具有实用价 值,需要的朋友可以参考下
本文实例讲述了 php使用类继承解决代码重复的问题。 分享给大家供大家参考。具体分析如下:
继承直白地说就是给一个类建一个或多个子类,要创 建子类就必须在类声明中使用extends关键字,新类名在 前,extends在中,父类名在后。
下例中,我们创建两个新类,BookP roduct和Cdpr oduct,它们都继承自ShopProduc t类。
代码如下:
It;?php
heade r C Content-type: text/h tml: charset =utf_8’);
//从这篇开始,类名首字母一律大写,规范写法 classShop Product {//声明类 publ ic$numPages://声明属性
public$playLenth:
p ublic$title :
public$p roducerMain Name; publ ic$producer FirstName;
p ublic$price :
function _construct ($title, $fi rstNa.me, $ma.
inName, $pri ce, $numPage s=0, SplayLe nth=0) {
$t his-gt;titl e=$title;//给属性 title 赋传进来的
值
$this-gt: producer FirstName=$f irstName:
$this-gt; p roducerMain Name=$mainN ame;
$this -gt ;price=$price;
$th is-gt ;numPa ges=$numPag es;
$this-gt; playLent h=$playLent h;
functi ongetProduc er () {//声明方法
returrT {$this-gt ;pro ducerFirstN ame}/z. /z {$th is-
gt :produ cerMainName } 〃:
funct iongetSumma ryLine () {
$base=〃{$th is-gt:title }({$this-gt :producerMa inName},〃:
$base. =〃 {$this-gt ;pro ducerFirstN ame})〃; retu rn$base:
}
classCdPro ductextends ShopProduct {
function getPlayLeng th() { retu rn$this-gt:playLength:
}
function getSummaryL ine () {
$ba se=/’{$this- gt;title} ({ $this-gt;pr
oducerMainN ame},〃 ;
$b ase. =〃 {$thi s-gt; produc erFirstName }) 〃 ;
$base . =/z: playing time~{$this -gt ;playLen gth})
retu rn$base:
classBookP roductexten dsShopProdu ct { functi ongetNumber OfPages () { return$thi s-gt: numPag es:
}
funct iongetSumma ryLine () {
$base=//{$th is-gt:title }({$this-gt :producerMa inName},〃:
$base. =/z {$this-gt: pro ducerFirstN ame}) ’’ ;
$b ase. =//: page cont-{$this -gt: numPage s})/z;
return $base;
由于子类没有定义构造方法,所以在实例化 BookProduct和Cdproduct类时,会自动调用父类Sh opProduct的构造方法。
子类默认继承了父类所有的publ ic和protecte d方 法与属性(但没有继承private方法与属性,后面会讲到 这三个关键字的作用)。也就是说,我们可以在从Cdp roduct类实例化的对象中调用getPro ducerO方法,尽管 getProduce r ()是在 ShopPr oduct 类中定义的。
将一下代码加到上面:
代码如下:
$prod uct2=newCdP roduct (PHP 面向对象,〃郭,〃碗 瓢盆,7, null,〃7 小时〃)
您可能关注的文档
最近下载
- (推荐!)人教版音乐二年级上册《报灯名》教案教学设计.pdf VIP
- 2025兴业银行总行国际业务部交易银行部招聘笔试参考题库附答案解析.docx VIP
- 一种利用酿酒废水和秸秆制备有机肥的方法.pdf VIP
- 人教版小学数学一年级下册全册教案(2024年3月修订).docx VIP
- 力劲DCC400吨压铸机说明书.pdf VIP
- 2025兴业银行总行国际业务部交易银行部招聘考试含答案.docx VIP
- 2025兴业银行总行国际业务部交易银行部招聘笔试模拟试题及答案解析.docx VIP
- 英语报刊选读词汇特色.ppt VIP
- 2025兴业银行总行国际业务部交易银行部招聘笔试含答案.docx VIP
- 2025兴业银行总行国际业务部交易银行部招聘考试备考试题及答案解析.docx VIP
原创力文档


文档评论(0)