Final Keyword in PHP in Hindi – Final Keyword क्या है?

PHP में final keyword का इस्तेमाल किसी class, method, या property को समाप्त (final) करने के लिए किया जाता है। इसका मतलब है कि हम किसी class, method या property को extend नहीं कर सकते या override नहीं कर सकते।

दूसरे शब्दों में कहें तो, “PHP में final कीवर्ड का इस्तेमाल Class या Method को Override होने से रोकने के लिए किया जाता है। यह keyword हमें यह सुनिश्चित करने में मदद करता है कि किसी class या method को inherit करने वाली दूसरी class उसे modify न कर सकें।”

Final Class

जब हम किसी class को final declare करते हैं, तो उस class को किसी और class से inherit नहीं किया जा सकता। इसका मतलब है कि हम उस class को subclass नहीं बना सकते। 

इसका उदाहरण:-

final class Car {
    public function startEngine() {
        echo "Engine started!";
    }
}

// यह कोड एरर देगा क्योंकि `final` क्लास को इनहेरिट नहीं किया जा सकता
class SportsCar extends Car {
    public function turboBoost() {
        echo "Turbo boost activated!";
    }
}

इस उदाहरण में, Car क्लास को final डिफाइन किया गया है, इसलिए SportsCar क्लास इसे inherit नहीं कर सकती। यदि आप ऐसा करने की कोशिश करते हैं, तो PHP एक Fatal Error थ्रो (Throw) करेगा।

Final Method

जब हम किसी मेथड को final कीवर्ड के साथ डिफाइन करते हैं, तो उस मेथड को किसी Child Class में Override नहीं किया जा सकता। यानी, उस मेथड को बदला नहीं जा सकता।

उदाहरण:

class Vehicle {
    final public function startEngine() {
        echo "Engine started!";
    }
}

class Car extends Vehicle {
    // यह कोड एरर देगा क्योंकि `final` मेथड को ओवरराइड नहीं किया जा सकता
    public function startEngine() {
        echo "Car engine started!";
    }
}

इस उदाहरण में, Vehicle क्लास के startEngine मेथड को final डिफाइन किया गया है, इसलिए Car क्लास में इसे override करने की अनुमति नहीं है। यदि आप ऐसा करने की कोशिश करते हैं, तो PHP एक error थ्रो (throw) करेगा।

Final Property

PHP 7.4 से पहले, final property का concept नहीं था, लेकिन अब हम property को final declare कर सकते हैं, जिससे हम उस property को subclass में बदल नहीं सकते।

उदाहरण:-

class Car {
    final public $brand = "Toyota";
}

class SportsCar extends Car {
    // Error: Cannot modify final property 'Car::$brand'
    public $brand = "Ferrari";
}

Leave a Comment