安徽建工集团网站,网站建设条例,手机app软件开发流程,深圳宝安天气预报在PHP中不能定义重名的函数#xff0c;也包括不能再同一个类中定义重名的方法#xff0c;所以也就没有方法重载。单在子类中可以定义和父类重名的方法#xff0c;因为父类的方法已经在子类中存在#xff0c;这样在子类中就可以把从父类中继承过来的方法重写。子类中重载父类…在PHP中不能定义重名的函数也包括不能再同一个类中定义重名的方法所以也就没有方法重载。单在子类中可以定义和父类重名的方法因为父类的方法已经在子类中存在这样在子类中就可以把从父类中继承过来的方法重写。子类中重载父类的方法就是在子类中覆盖从父类中继承过来的方法父类中的方法被子类继承过来不就可以直接使用吗为什么还要重载呢因为有一些情况我们必须要覆盖的。例如有一个“鸟”类在这个类中定义了鸟的通用方法“飞翔”。将“鸵鸟”类作为它的子类就会将“飞翔”的方法继承过来但只要一调用“鸵鸟”类中的这个“飞翔”的方法鸵鸟就会飞走。虽然鸵鸟是不会飞的但其他特性都具有“鸟类”的特性所以在声明“鸵鸟”类时还是可以继承“鸟”类的但必须在“鸵鸟”类中将“鸟”类中继承过来的“飞翔”方法改写就需要在子类中重载父类中的方法。在下面的例子中声明的Person类中有一个“说话”方法Student类继承Person类后可以直接使用“说话”方法。但Person类中的“说话”方法只能说出它自己的成员属性而Student类对Person类进行了扩展多添加了几个新的成员属性。代码如下所示改程序运行后输出的结果为我的名字叫张三性别男我的年龄是20在edu学校上学在PHP中提供了在子类重载的方法中调用父类被覆盖方法的功能。这样就可以在子类重写的方法中继续使用从父类继承过来并被覆盖的方法然后再按要求多添加一些新功能。调用的格式是使用“parent:方法名”在子类的重载方法中调用父类中被覆盖的方法。将上例中的代码修改一下在子类重写的构造方法中使用“parent::__construct()”调用父类中被覆盖的构造方法再多添加一条对子类中新扩展的成员属性初始化的代码。在子类中重写的say()方法中使用“parent::say()”调用父类中被覆盖的say()方法再添加上输出子类成员属性的功能。代码如下所示上面的例子输出的结果和前一个例子是一样的但在本例中通过在子类中直接调用父类中被覆盖的方法要简便很多。另外在子类覆盖父类的方法时一定要注意在子类中重写的方法访问权限一定不能低于父类被覆盖的方法的访问权限。例如如果父类中的访问权限是protected那么在子类中重写的方法的权限就要是protected或public。以上内容是小编给大家介绍的PHP中子类重载父类的方法【parent::方法名】的相关内容希望对大家有所帮助如果大家想了解更多资讯敬请关注服务器之家网站