探讨方法的重写(覆载)详解

复制代码 代码如下:

  <?php

  class Cart{

  public function Cart(){

  echo "正在调用Cart()<br />";

  }

  public function doSomething(){

  echo "正在调用doSomethimg()<br />";

  }

  }

  class Named_Cart extends Cart{

  function Named_Cart(){

  echo "正在调用Named_Cart()<br />";

  }

  function doSomething(){

  echo "正在调用Named_Cart::doSomething()<br />";

  }

  }

  $myCart=new Cart();

  $myCart->doSomething();

  $myNamed_Cart=new Named_Cart();

  $myNamed_Cart->doSomething();

  ?>

  在方法覆盖时,务必要使用与原始方法相同的约定,包括参数要一致。属性覆盖也遵循相同的约定。

  在覆盖基类的方法后,使用parent关键字仍然可以调用基类的doSomething()方法,而非当前类中的doSomething()方法。