[关闭]
@Chiang 2020-01-08T11:43:24.000000Z 字数 730 阅读 506

Final 关键字

PHP


  • PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
  • Note: 属性不能被定义为 final,只有类和方法才能被定义为 final。
  1. <?php
  2. class BaseClass {
  3. public function test() {
  4. echo "BaseClass::test() called\n";
  5. }
  6. final public function moreTesting() {
  7. echo "BaseClass::moreTesting() called\n";
  8. }
  9. }
  10. class ChildClass extends BaseClass {
  11. public function moreTesting() {
  12. echo "ChildClass::moreTesting() called\n";
  13. }
  14. }
  15. // Results in Fatal error: Cannot override final method BaseClass::moreTesting()
  16. ?>
  1. <?php
  2. final class BaseClass {
  3. public function test() {
  4. echo "BaseClass::test() called\n";
  5. }
  6. // 这里无论你是否将方法声明为final,都没有关系
  7. final public function moreTesting() {
  8. echo "BaseClass::moreTesting() called\n";
  9. }
  10. }
  11. class ChildClass extends BaseClass {
  12. }
  13. // 产生 Fatal error: Class ChildClass may not inherit from final class (BaseClass)
  14. ?>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注