面向对象的封装性:
1,就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节
public protected
private 私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问),不能在对象外部使用
属性可以封装:
只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用。成员属性,就相当于这个对象中的全局变量。成员属性都会在方法中使用,成员属性值的变化其实就是在改变方法的执行行为,也就是改变了对象的功能,成员属性的值如果不正常,方法执行的功能也就不正常了。
作用:不需要在对象外部改变或读取它的值,可以在类中提供一个公有的方法,经过方法对象就可以对成员属性进行赋值和取值等操作。
方法也可以封装:
使用private修饰使其只能在内部使用,只要留几个对外方法就可以了!
和封装有关的魔术方法:
__set():是直接设置私有成员属性值时,自动调用的方法
__get():是直接获取私有成员属性值时,自动调用的方法
__isset():查看对象中私有属性是否存在时自动调用这个方法
__unset():直接删除对象中私有属性时,自动调用的方法
继承
1.PHP 对象模型使用了继承。继承将会影响到类与类,对象与对象之间的关系。
比如,当扩展一个类,子类就会继承父类所有公有的和受保护的方法。除非子类覆盖了父类的方法,被继承的方法都会保留其原有功能。
继承对于功能的设计和抽象是非常有用的,而且对于类似的对象增加新功能就无须重新再写这些公用的功能。
2.php中是单继承,有且只能有一个父元素
PHP中使用extends单一继承的方法
PHP的构造函数可以被继承,但是如果子类也定义了构造函数,则父类的被覆盖
子类中将父类的函数进行重新的定义,叫重写