多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 1、什么是类的多态? * 类的多态,就是类的多种形态。 * 类的多态主要指方法重载或方法重写。 * 方法重载:在同一个类中定义两个同名方法,PHP不支持。 * 方法重写:在子类中定义一个与父类同名的方法,就是“方法重写”。 * 为什么要重写方法?主要是实现功能的升级。父类中有的方法,子类中再用同样的名字再定义一次,一般来说,子类中方法的功能比父类更完善、更详尽。 ![](https://img.kancloud.cn/e9/19/e9199ab95f8064f6d48c526b9a5cf9d9_835x271.png) ## 2、方法重写的要求 * 子类中重写的方法,要与父类中的方法同名; * 子类中重写的方法形参个数,要与父类中的同名方法形参个数一致; * 子类中重写的方法类型,要与父类中同名方法类型一致; * 子类中重写的方法的访问权限,不能低于父类中同名方法的访问权限; 父类方法权限为public,子类同名方法权限只能是public; 父类方法权限为protected,子类同名方法权限可以是protected和public; 父类方法权限为private,子类无法继承,也无法重写。 * 注意:对于重写构造方法,就比较特殊,就没有形参个数的要求。 ## 3、实例:方法重写的要求 ![](https://img.kancloud.cn/a1/1e/a11e371312bdf01fcdd608600c1a94e4_554x360.png) ## 4、实例:商品子类重写商品基础类中的方法 ![](https://img.kancloud.cn/3b/3a/3b3a1fa7e12d6b2d399257fb056d2638_709x555.png) ![](https://img.kancloud.cn/4a/21/4a21a2c701ea42eae07017ad7f489163_715x547.png) ![](https://img.kancloud.cn/a7/7c/a77cf294ef44f9b42c70bda69b76301e_711x554.png) ![](https://img.kancloud.cn/0e/99/0e99a054952bc9d54e01a44f7b9e4ad7_971x245.png)