2016/07/30

php面向对象


面向对象三大特性: 封装,继承,多态

封装

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

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

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

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

继承

继承就是一个子类(Subclass)通过 extends 父类, 把父类(BaseClass)中的 public 和 protected 的属性和方法继续 下来,不能继承 private 属性和方法

多态

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

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

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

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

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

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

访问权限大小排序: public > protected > private