[李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --类的继承,多态及抽象类

49 篇文章 0 订阅

类的继承,多态及抽象类


PHP内核将类的继承实现放在了”编译阶段”,因此使用VLD生成中间代码时并没有关于继承的相关信息。

整个继承的过程是以类结构为中心,当继承发生时,程序会先处理所有的接口。

在继承过程中,除了常规的函数合并后,还有魔术方法的合并。

多态顾名思义,多态即多种形态,相同方法调用实现不同的实现方式。

PHP中关键点在于类型提示的实现。

类型提示的实现:


第一步:判断参数是否为对象,使用宏Z_TYPE_P,如果是转二步,否则跳到其它情况
第二步:获取类的类型验证信息,调用了Zend_verify_arg_class_kind函数,
第三步:判断是否为指定类的实例。
第四步:如果不指定类的实例,程序会调用zend_verify_arg_error 报错。

接口的实现


接口也可以和类一样实现继承,并且只能是一个接口继承另一个接口。

抽象类


抽象类仅提供一个类的部分实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值