开发者

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

开发者 https://www.devze.com 2023-03-11 03:33 出处:网络
How can I prevent the something method below to be created in the foo class ? class fooBase{ public function something(){

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

精彩评论

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