当前位置: 首页 > 后端技术 > PHP

面向对象的特性:继承

时间:2023-03-29 17:00:06 PHP

一、继承与扩展1、子类使用extends继承父类,子类可以继承父类的所有内容,如下://multi-layerinheritanceclassPerson{var$name;变种$年龄;变种$性别;function__construct(){}functionsay(){}functioneat(){echo"1111";}函数运行(){}};类学生扩展人{var$school;函数__construct(){}函数研究(){}};班级教师扩展学生{var$gz;功能教(){}};$stu=新学生;$stu->吃();/11112.private不能继承给子类,如下:classPerson{private$name="liu";变种$年龄;变种$性别;函数__construct(){}函数say(){echo$this->name;}functioneat(){echo"1111";}函数运行(){}};类学生扩展人{var$school;函数__construct(){}函数研究(){}};班级教师扩展学生{var$dw;功能教学(){echo$this->name;}};$老师=新老师;$teacher->say();//liu只是继承父类的say()的子类引用$teacher->teach();//error3.protected保护权限,只能自己和子类使用,不能对外读取,如下:classPerson{private$name="liu";受保护的$age=10;变种$性别;函数__construct(){}函数say(){echo$this->age;}functioneat(){echo"1111";}函数运行(){}};类学生扩展人{var$school;函数__construct(){}函数研究(){}};班级教师扩展学生{var$dw;(){回声$这个->年龄;}};$老师=新老师;$teacher->say();//10$teacher->teach();//104.public(默认)公共权限,所有位置均可,不再赘述,各权限如下图:二、继承中的重载/重写1、强类型语言中的重载:方法名相同,参数或参数个数不同2、弱类型语言理解为重写:同一个类3.弱类型中的重载:子类中可以写与父类同名的方法,即方法扩展(接口、多态)4、调用类方法Person::say();5.调用父类(重写)方法(默认关键字)parent::say();6.__construct()也可以重写,但是必须在最开始调用父类构造函数,如下:function__construct($name,$age,$sex,$school){//先调用父类构造函数,否则父类初始化后子类不会改变parent::__construct($name,$age,$sex);$this->学校=$学校;}7.权限:子类权限只能>=父类权限,即public>protected>private