zoukankan      html  css  js  c++  java
  • php中重写和final关键字的使用

      为什么把重写和final放在一起,原因就是一条:final的意思是不可更改的,也就是说final定义的东西是不可改变的,下面具体来说一下。

    来看一段简单的代码:

     1 class BaseClass {
     2    final public function test() {
     3        echo "BaseClass::test() called
    ";
     4    }
     5    
     6    public function moreTesting() {
     7        echo "BaseClass::moreTesting() called
    ";
     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
    ";
    25    }
    26 }

    代码中定义了一个类,BaseClass然后ChildClass继承了这个类并且重写了这个类中的方法moreTesting,重写方法的时候方法名一定要一样,参数可以改变。这时候对象调用的时候就是调用的重写后的方法。

    代码中注释了一个地方,如果这段代码被执行就会报错,因为AbcClass是final关键字定义的类,可以正常被使用,但不能被任何类继承。

    类中final关键字定义的方法也不能被重写,比如BaseClass中的test方法,只能使用,如果重写会出现错误。

  • 相关阅读:
    u Calculate e
    Elevator
    骑士走棋盘
    Number Sequence
    老鼠走迷宫
    Let the Balloon Rise
    A+B Problem II
    Three-Color Flag
    Noldbach problem
    Almost Prime
  • 原文地址:https://www.cnblogs.com/freeweb/p/4639044.html
Copyright © 2011-2022 走看看