在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
为什么把重写和final放在一起,原因就是一条:final的意思是不可更改的,也就是说final定义的东西是不可改变的,下面具体来说一下。 来看一段简单的代码: 1 class BaseClass { 2 final public function test() { 3 echo "BaseClass::test() called\n"; 4 } 5 6 public function moreTesting() { 7 echo "BaseClass::moreTesting() called\n"; 8 } 9 } 10 final class AbcClass{ 11 public function abc(){ 12 echo "abc"; 13 } 14 } 15 /* 16 class Abcd extends AbcClass{ 17 public function abcd(){ 18 } 19 } 20 */ 21 22 class ChildClass extends BaseClass { 23 public function moreTesting($tmp=null) { 24 echo "ChildClass::moreTesting() called\n"; 25 } 26 } 代码中定义了一个类,BaseClass然后ChildClass继承了这个类并且重写了这个类中的方法moreTesting,重写方法的时候方法名一定要一样,参数可以改变。这时候对象调用的时候就是调用的重写后的方法。 代码中注释了一个地方,如果这段代码被执行就会报错,因为AbcClass是final关键字定义的类,可以正常被使用,但不能被任何类继承。 类中final关键字定义的方法也不能被重写,比如BaseClass中的test方法,只能使用,如果重写会出现错误。 |
2022-07-18
2022-08-17
2022-11-06
2022-07-29
2022-08-18
请发表评论