[李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --类的继承,多态及抽象类
2017-05-22 08:48
776 查看
类的继承,多态及抽象类
PHP内核将类的继承实现放在了”编译阶段”,因此使用VLD生成中间代码时并没有关于继承的相关信息。整个继承的过程是以类结构为中心,当继承发生时,程序会先处理所有的接口。
在继承过程中,除了常规的函数合并后,还有魔术方法的合并。
多态顾名思义,多态即多种形态,相同方法调用实现不同的实现方式。
PHP中关键点在于类型提示的实现。
类型提示的实现:
第一步:判断参数是否为对象,使用宏Z_TYPE_P,如果是转二步,否则跳到其它情况第二步:获取类的类型验证信息,调用了Zend_verify_arg_class_kind函数,
第三步:判断是否为指定类的实例。
第四步:如果不指定类的实例,程序会调用zend_verify_arg_error 报错。
接口的实现
接口也可以和类一样实现继承,并且只能是一个接口继承另一个接口。抽象类
抽象类仅提供一个类的部分实现。相关文章推荐
- [李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --访问控制的实现
- [李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --类的结构和实现
- [李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --概览
- [李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --简介
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--PHP的哈希实现
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--链表
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的作用域
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的生命周期
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--HashTable-1
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--简略
- [李景山php] 20170505深入理解PHP内核[读书笔记]--第二章:用户代码执行-1
- [李景山php] 深入理解PHP内核[读书笔记]--第二章:用户代码执行--opcode处理函数查找
- [李景山php] 20170504深入理解PHP内核[读书笔记]--第一章准备工作和背景知识--1
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--预定义变量
- [李景山php] 深入理解PHP内核[读书笔记]--第二章:用户代码执行--PHP脚本的执行
- [李景山php] 深入理解PHP内核[读书笔记]--第二章:用户代码执行--PHP脚本的执行 词法分析和语法分析
- [李景山php] 深入理解PHP内核[读书笔记]--第二章:用户代码执行--SAPI概述
- [李景山php] 深入理解PHP内核[读书笔记]--第二章:用户代码执行--SAPI概述-1
- [李景山php] 20170504深入理解PHP内核[读书笔记]--第一章准备工作和背景知识--2
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--静态变量