面向对象的三大特性:封装性、继承性、多态性
一、类的封装性
将敏感数据保护起来,不被外界访问。
类的封装就是将一个功能的方方面面,封装成一个类,例如:数据库工具类,把数据库操作的所有方面全面封装到类中。
类的封装性实现,就是通过权限控制符来实现
在项目中,所有成员属性,一般都是private、protected权限
二、类的继承性
相当于CSS继承:将上层标签定义的样式,继承到子标签来使用。多个标签如果具有相同的样式,只需要在父标签定义,再继承到子标签来使用。相同的样式只需要定义一次
如果一个B类拥有了A类的所有特征,则我们就认为B类继承了A类。
A类:父类、上层类、基础类(最顶层的类)
B类:子类、下层类
extends关键字,继承父类
继承是为了实现功能的升级和扩展。如果一个项目不需要升级和扩展,则不用继承。
功能的升级:原来有的功能,对现在的功能进行更加完善的处理。
功能的扩展:原来没有的功能,增加一个新功能
如果项目需要升级和扩展功能,不能直接修改原类,需要创建一个子类,并继承父类
parent关键字
self代表当前类,parent代表父类;
self可以调用本类的内容:类常量、静态属性、静态方法、成员方法;
parent可以调用父类的内容:类常量、静态属性、静态方法、成员方法;
//继承的格式
class SubClass extends ParentClass{
//子类的功能代码
}
语法说明:
1.subclass代表要创建的子类的名称
2.extends是继承关键字,不区分大小写
3.ParentClass代表已经存在的父类或者上层类
示例:
三、类的多态
类的多态,就是类的多种形态
类的多态,主要指方法重写
方法重写:父类有一个方法,在子类用同样的名称再定义一次。
功能升级:父类有的功能,子类的功能比它更完善、更详尽。通过方法重写来实现。
如果不需要升级,也不需要扩展,继承就没有意义
//方法重写的要求:
//子类中重写的方法名称,要与父类方法名称一致。
//子类中重写的方法的参数个数,必须要与父类方法的参数个数一致;
//子类中重写的方法的类型,必须要与父类方法的类型一致;父类是成员的方法,子类必须是成员的方法;父类是静态方法,子类也必须是静态方法。
//子类中重写的方法的权限,不能低于父类方法的权限。
//如果父类方法权限位public,则重写方法必须是public;
//如果父类方法权限位protected,则重写方法必须是public、protected;
标签:重写,功能,php,继承,子类,面向对象,父类,方法,三大
From: https://www.cnblogs.com/caidao666/p/18223464