Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

Final Class และ Final Method ใน PHP


คีย์เวิร์ด final ใน PHP 5 ใช้กับ OOP ป้องกันการ override method หรือการ extend class

ตัวอย่าง: Final Method

<?php 
class BaseClass{ 
    final function calculate($val1,$val2){ 
        $sum = $val1+$val2; 
        echo "Sum of given no=".$sum; 
    } 
} 
class ChildClass extends BaseClass{ 
    function calculate($x,$y){ // Error: Cannot override final method
        $mult=$x*$y; 
        echo "Multiplication of given no=".$mult; 
    } 
} 
$obj = new ChildClass(); 
$obj->calculate(10,10); 
?>

ผลลัพธ์

PHP Fatal error: Cannot override final method BaseClass::calculate()

คำอธิบาย

calculate() ใน BaseClass เป็น final ChildClass ไม่สามารถ override ได้

ตัวอย่าง: Final Class

<?php 
final class BaseClass{ 
    function printData($val1,$val2){ 
        $add=$val1+$val2; 
        echo "Sum of given no=".$add; 
    } 
} 
class Child extends BaseClass{ // Error: Cannot inherit from final class
    function printData($val1,$val2){ 
        $m=$val1*$val2; 
        echo "Multiplication of given no=".$m; 
    } 
} 
$obj = new Child(); 
$obj->printData(20,20); 
?>

ผลลัพธ์

PHP Fatal error: Class Child may not inherit from final class (BaseClass)

คำอธิบาย

BaseClass เป็น final class ไม่สามารถ extend ได้