final 可修飾類別或方法,表示「最終、不可變更」。
final class A { } — 類別不可被繼承。class A { final public function foo() {} } — 方法不可被覆寫,但可被繼承呼叫。<?php
final class A {}
class B extends A {} // Fatal error: Cannot inherit from final class
?>
class A {
final public function getRate($salary){ return $salary*0.08; }
}
class B extends A {
public function getRate($salary){ return $salary*0.01; } // Fatal error
}
$b=new B(); echo $b->getRate(2000);
class A { final public function getRate($salary){ return $salary*0.08; } }
class B extends A { /* 不覆寫 */ }
$b=new B(); echo $b->getRate(2000); // 160 正常執行