使用来自超类的公共方法创建子类的实例

时间:2013-11-30 20:27:56

标签: php oop

我想使用来自超类的公共方法创建子类的实例:

class A{
   public function instantiate_object(){
      $object = new self;
      return $object;
   }
}

class B extends A{
   public function do_something(){
      echo 'do something';
   }
}

$b = new B;
$instance = $b->instantiate_object(); // it returns instance of A not B;
$instance-> do_something();

它出现此错误“在第17行的C:\ wamp \ www \ index.php中调用未定义的方法A :: do_something()”。 所以我需要一种除了“self”之外的方法在A类的instantiate_object()中使用,以便在我使用这个子类调用此方法时从子类创建实例,提前感谢。

0 个答案:

没有答案