面向对象的基本原则: 高内聚 低耦合
内聚:每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码。尽可能类的每个成员方法只完成一件事(最大限度的聚合)
耦合:模块与模块之间接口的复杂程度 , 尽量减少模块之间的交互复杂度
面象对向的四大特点:抽象、封装性、继承性、多态性
抽象
我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象
编辑
请点击输入图片描述
封装
封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作。
php提供了三种访问控制修饰符
public 表示全局,本类内部,类外部,子类都可以访问
protected 表示受保护的,只有本类或子类可以访问
private 表示私有的,只有本类内部可以访问
以上三种修饰符既可以修饰方法也可以修饰属性(变量),方法如果没有访问修饰符则默认是public,成员属性必须指定访问修饰符
小结:
1、当一个父类知道所有的子类都有一个方法,但是父类不能确定该方法如何写,可以让子类去覆盖它的方法,方法覆盖(重写),必须要求子类的方法名和参数个数完全一致
2、如果子类要去调用父类的某个方法(protected/public),可以使用 父类名::方法名 或者 parent::方法名
3、在实现方法重写的时候,访问修饰符可以不一样,但是子类方法的访问权限必须大于等于父类方法的访问权限(即不能缩小父类方法的访问权限)
如 父类public function cry(){} 子类 protected function cry(){} 则会报错
但是子类的访问权限可以放大,如:
父类protected function cry(){} 子类 public function cry(){} 可以正确执行
因为PHP 本身就是一种弱类型的语言,不存在父类对象转化为子类对象或者是子类对象转化为父类对
象的问题,所以多态的应用并不是那么的明显。
领取专属 10元无门槛券
私享最新 技术干货