php中重写方法有哪些规则

  介绍

这篇文章将为大家详细讲解有关php中重写方法有哪些规则,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

php中重写方法的规则有:1,最后修饰的类方法不能被子类重写;2,如果要重写父类方法,那么参数个数必须一致;3,在重写时,访问级别只可以等于或大于父类,不可提升访问级别。

方法重写规则:

1,最后修饰的类方法不可被子类重写

最后修饰的类方法不可被子类重写即便最终私人方法无法被继承子类仍不能对齐进行重写

类FinalMethod   {//可继承不可重写   最后公共finalPublic()函数   {   回声“可以被继承,但是overrided";   }//可继承不可重写   最后保护finalProtected()函数   {   回声“可以被继承,但是overrided";   }//不可继承不可重写虽然子类继承不到父类的私有方法但同时也会被最终限制无法重写   最后一个私人finalPrivate()函数   {   回声“不能继承或者是overrided";   }//虽然不可继承但子类里可重写此方法   私人私人()函数   {   回声“不能被继承,但overrided";   }   }      类覆盖延伸FinalMethod   {//错误   公共函数finalPublic ()   {   }//错误   保护finalProtected()函数   {   }//错误   私人finalPrivate()函数   {   }//正确   公共/保护/私人私人()函数   {//子类继承父类重写父类方法时访问级别只能更加宽松不可更为严格   }   }

2, PHP是否重写父类方法只会根据方法名是否一致判断(5.3以后重写父类方法参数个数必须一致)

这里并不是说方法参数无任何作用PHP无重载机制所以判断是不是重写只会通过方法名(C/c++不仅要方法名相同,参数也相同时才被视为重写,否则即为重载,即新定义了一个多态函数的态)当方法名相同时即被认为是在重写父类方法,5.2可以参数不同,5.3以后参数需和父类方法一致,且都追寻继承访问级别的规则。

类的父亲   {   公共函数指数(args_1美元)   {   }   }      类孩子延伸的父亲   {//5.3以后重写方法必须与父类保持参数个数相同   公共函数指数(args_1, args_2美元)   {//在C/c++中此为重载非重写,因为C/c++具有标准的多态机制,会因参数不同而视为某一方法的另一种态//但在php中此依然为重写但5.3以后此为非法必须与父类的方法参数个数保持一致   }//5.3以后重写方法必须与父类保持参数个数相同   私有函数指数(args_1, args_2美元)   {//C/c++会因为参数不同于父类方法而视为重载,即新定义了一个函数的态,所以不会受到继承访问权限的限制//但php仍然会被视为对父类方法的重写,会受到继承访问权限的升降规则限制   }   }

3,重写时访问级别只可以等于或者宽松于父类不可提升访问级别

父类的公共方法不能被子类重写为保护或者私人的,受保护的方法不能被重写为私有的,可以宽松,不可以严格er

关于php中重写方法有哪些规则就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

php中重写方法有哪些规则