PHP 面向對象 final類與final方法
更新時間:2010年05月05日 23:44:00 作者:
如果我們不希望一個類被繼承,我們使用final來修飾這個類。這個類將無法被繼承。
final---用于類、方法前。
final類---不可被繼承。
final方法---不可被覆蓋。
final類不能被繼承。
如果我們不希望一個類被繼承,我們使用final來修飾這個類。這個類將無法被繼承。比如我們設定的Math類,涉及了我們要做的數(shù)學計算方法,這些算法也沒有必要修改,也沒有必要被繼承,我們把它設置成final類型。
<?
//聲明一個final類Math
final class Math{
public static $pi = 3.14;
public function __toString(){
return "這是Math類。";
}
}
$math = new Math();
echo $math;
//聲明類SuperMath 繼承自 Math類
class SuperMath extends Math {
}
//執(zhí)行會出錯,final類不能被繼承。
?>
程序運行結果
final方法不能被重寫
如果不希望類中的某個方法被子類重寫,我們可以設置這個方法為final方法,只需要在這個方法前加上final修飾符。
如果這個方法被子類重寫,將會出現(xiàn)錯誤。
<?
//聲明一個final類Math
class Math{
public static $pi = 3.14;
public function __toString(){
return "這是Math類。";
}
public final function max($a,$b){
return $a > $b ? $a : $b ;
}
}
//聲明類SuperMath 繼承自 Math類
class SuperMath extends Math {
public final function max($a,$b){}
}
//執(zhí)行會出錯,final方法不能被重寫。
?>
程序運行結果
final類---不可被繼承。
final方法---不可被覆蓋。
final類不能被繼承。
如果我們不希望一個類被繼承,我們使用final來修飾這個類。這個類將無法被繼承。比如我們設定的Math類,涉及了我們要做的數(shù)學計算方法,這些算法也沒有必要修改,也沒有必要被繼承,我們把它設置成final類型。
復制代碼 代碼如下:
<?
//聲明一個final類Math
final class Math{
public static $pi = 3.14;
public function __toString(){
return "這是Math類。";
}
}
$math = new Math();
echo $math;
//聲明類SuperMath 繼承自 Math類
class SuperMath extends Math {
}
//執(zhí)行會出錯,final類不能被繼承。
?>
程序運行結果
復制代碼 代碼如下:
Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 14
final方法不能被重寫
如果不希望類中的某個方法被子類重寫,我們可以設置這個方法為final方法,只需要在這個方法前加上final修飾符。
如果這個方法被子類重寫,將會出現(xiàn)錯誤。
復制代碼 代碼如下:
<?
//聲明一個final類Math
class Math{
public static $pi = 3.14;
public function __toString(){
return "這是Math類。";
}
public final function max($a,$b){
return $a > $b ? $a : $b ;
}
}
//聲明類SuperMath 繼承自 Math類
class SuperMath extends Math {
public final function max($a,$b){}
}
//執(zhí)行會出錯,final方法不能被重寫。
?>
程序運行結果
復制代碼 代碼如下:
Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 16
您可能感興趣的文章:
- PHP abstract與interface之間的區(qū)別
- 深入解讀php中關于抽象(abstract)類和抽象方法的問題分析
- PHP abstract 抽象類定義與用法示例
- 詳談PHP中public,private,protected,abstract等關鍵字的用法
- PHP 抽象方法與抽象類abstract關鍵字介紹及應用
- php類中的$this,static,final,const,self這幾個關鍵字使用方法
- PHP面向對象的進階學習(抽像類、接口、final、類常量)
- php中final關鍵字用法分析
- php中static靜態(tài)變量的使用方法詳解
- php面向對象中static靜態(tài)屬性和靜態(tài)方法的調用
- PHP中的靜態(tài)變量及static靜態(tài)變量使用詳解
- PHP中abstract(抽象)、final(最終)和static(靜態(tài))原理與用法詳解
相關文章
PHP中在數(shù)據(jù)庫中保存Checkbox數(shù)據(jù)(1)
PHP中在數(shù)據(jù)庫中保存Checkbox數(shù)據(jù)(1)...2006-10-10

