- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
5.5PHPfinal关键字陈学平
015PHPfinal关键字
5PHPfinal关键字final关键字。final关键字用于定义类和方法,该关键字表示该类或方法为最终版本,即该类不能被继承,或该方法在子类中不能被重载(覆盖)。
类使用final关键字的实例:
finalclassPerson
{
......
}
final定义的类被继承时会提示如下错误:
Fatalerror:ClassStudentmaynotinheritfromfinalclass(Person)in...
5PHPfinal关键字classPerson{????finalfunctionsay()????{????????......????}}
025PHP类的接口
6.1PHP接口PHP类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此PHP引入了类的接口技术。
如果一个抽象类里面的所有方法都是抽象方法,且没有声明变量,而且接口里面所有的成员都是public权限的,那么这种特殊的抽象类就叫接口。
接口使用关键字interface来定义,并使用关键字implements来实现接口中的方法,且必须完全实现。
实例4使用关键字interface定义接口,并使用关键字implements实现接口中的方法
实例代码如下:
?php
6.1PHP接口?php//定义接口interfaceUser{????functiongetDiscount();????functiongetUserType();}//VIP用户接口实现classVipUserimplementsUser{????//VIP用户折扣系数????private$discount=0.8;????functiongetDiscount(){????????return$this-discount;????}????functiongetUserType(){????????returnVIP用户;????}}
6.1PHP接口classGoods{????var$price=100;????var$vc;????//定义User接口类型参数,这时并不知道是什么用户????functionrun(User$vc){????????$this-vc=$vc;????????$discount=$this-vc-getDiscount(); $usertype=$this-vc-getUserType();????????echo$usertype.商品价格:.$this-price*$discount;????}}$display=newGoods();$display-run(newVipUser); //可以是更多其他用户类型?
6.1PHP接口运行该实例,输出:
VIP用户商品价格:80元
该实例演示了一个PHP接口的简单应用。该实例中,User接口实现用户的折扣,而在VipUser类里面实现了具体的折扣系数。最后商品类Goods根据User接口来实现不同的用户报价。
该实例仅限于演示PHP接口的用法,不涉及其科学与否。
6.2实现多个接口PHP也可以在继承一个类的时候同时实现多个接口:
class子类extends父类implemtns接口1,接口2,...
{
......
}
6.3抽象类和接口的区别接口是特殊的抽象类,也可以看做是一个模型的规范。接口与抽象类大致区别如下:
一个子类如果implements一个接口,就必须实现接口中的所有方法(不管是否需要);如果是继承一个抽象类,只需要实现需要的方法即可。
如果一个接口中定义的方法名改变了,那么所有实现此接口的子类需要同步更新方法名;而抽象类中如果方法名改变了,其子类对应的方法名将不受影响,只是变成了一个新的方法而已(相对老的方法实现)。
抽象类只能单继承,当一个子类需要实现的功能需要继承自多个父类时,就必须使用接口。
谢谢
您可能关注的文档
- PHP程序设计基础(微课版)(第2版)课件 1.MYSQL数据库基本操作.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP cookie.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP超级全局变量.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP代码标记与注释.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP函数语法参数及返回值.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP类与对象.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP连接和选择数据库实现查询.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP留言本简介.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP数组概述、分类及声明.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP数组概述及分类.pptx
最近下载
- DLT869-2021 火力发电厂焊接技术规程.pdf
- 2024年上海长宁区中考语文一模作文:“生命中的不可或缺”审题立意及范文.docx VIP
- 2024年高中数学函数思想在解题中的应用.pptx
- 老年患者的心理健康评估与干预.pptx VIP
- 七上字词复习卷 (修订版版含答案).pdf VIP
- GB50210-2018 建筑装饰装修工程质量验收标准.doc
- 中图版高中地理必修三.《人类活动对区域地理环境的影响神奇的马达加斯加》.ppt
- 中国包装塑料市场运行态势及行业发展前景预测报告.docx
- 东北抗联精神 主题班会课件.pptx
- 2020-2025年中国P2P借贷行业市场运营现状及行业发展趋势报告.docx
文档评论(0)