网站大量收购闲置独家精品文档,联系QQ:2885784924

PHP程序设计基础(微课版)(第2版)课件 3.PHP final 关键字与类的接口.pptx

PHP程序设计基础(微课版)(第2版)课件 3.PHP final 关键字与类的接口.pptx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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一个接口,就必须实现接口中的所有方法(不管是否需要);如果是继承一个抽象类,只需要实现需要的方法即可。

如果一个接口中定义的方法名改变了,那么所有实现此接口的子类需要同步更新方法名;而抽象类中如果方法名改变了,其子类对应的方法名将不受影响,只是变成了一个新的方法而已(相对老的方法实现)。

抽象类只能单继承,当一个子类需要实现的功能需要继承自多个父类时,就必须使用接口。

谢谢

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档