开发者

How to not allow a sub-class method to be defined in PHP

How can I prevent the something method below to be created in the foo class ?

class fooBase{

  public function something(){

  }
}

class foo extends fooBase{

  public function __co开发者_如何转开发nstruct(){
    echo $this->something(); // <- should be the parent class method
  }

  public function something(){ 
    // this method should not be allowed to be created
  }
}


Use the final keyword (like in Java etc):

class fooBase{

  final public function something(){

  }
}

class foo extends fooBase{

  public function __construct(){
    echo $this->something(); // <- should be the parent class method
  }

  public function something(){ 
    // this method should not be allowed to be created
  }
}

See PHP Final keyword. Note that foo will still have a method something, but something will only come from fooBase and foo can't override it.


Use the final keyword.

In your parent:

final public function something()


You can use final to prevent base methods being overwritten.

class fooBase{

  final public function something(){

  }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜