PHP中的面向对象总结

面向对象的基本原则: 高内聚 低耦合

内聚:每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码。尽可能类的每个成员方法只完成一件事(最大限度的聚合)

耦合:模块与模块之间接口的复杂程度 , 尽量减少模块之间的交互复杂度

面象对向的四大特点:抽象、封装性、继承性、多态性

抽象

我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象

编辑

请点击输入图片描述

封装

封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作。

php提供了三种访问控制修饰符

public 表示全局,本类内部,类外部,子类都可以访问

protected 表示受保护的,只有本类或子类可以访问

private 表示私有的,只有本类内部可以访问

以上三种修饰符既可以修饰方法也可以修饰属性(变量),方法如果没有访问修饰符则默认是public,成员属性必须指定访问修饰符

小结:

1、当一个父类知道所有的子类都有一个方法,但是父类不能确定该方法如何写,可以让子类去覆盖它的方法,方法覆盖(重写),必须要求子类的方法名和参数个数完全一致

2、如果子类要去调用父类的某个方法(protected/public),可以使用 父类名::方法名 或者 parent::方法名

3、在实现方法重写的时候,访问修饰符可以不一样,但是子类方法的访问权限必须大于等于父类方法的访问权限(即不能缩小父类方法的访问权限)

如 父类public function cry(){} 子类 protected function cry(){} 则会报错

但是子类的访问权限可以放大,如:

父类protected function cry(){} 子类 public function cry(){} 可以正确执行

因为PHP 本身就是一种弱类型的语言,不存在父类对象转化为子类对象或者是子类对象转化为父类对

象的问题,所以多态的应用并不是那么的明显。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181031A1E2QN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券