Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP final कीवर्ड: ओवरराइडिंग और इनहेरिटेंस रोकें


परिचय

PHP क्लास में इंस्टेंस मेथड की परिभाषा में final कीवर्ड का उपयोग करके उसे चाइल्ड क्लास द्वारा ओवरराइड किए जाने से रोका जा सकता है। इसी तरह, यदि final का उपयोग क्लास की परिभाषा में ही किया जाए, तो ऐसी क्लास को एक्सटेंड नहीं किया जा सकता।

सिंटैक्स

final class myclass {}
class myclass {
    final function mymethod() {}
}

उदाहरण 1: Final मेथड ओवरराइड नहीं किया जा सकता

<?php
class parentclass {
    final function test() {
        echo "final method in parent class";
    }
}

class childclass extends parentclass {
    function test() {
        echo "overriding final method in parent class";
    }
}

$obj = new childclass();
$obj->test();
?>

आउटपुट

PHP Fatal error: Cannot override final method parentclass::test() in line 16

उदाहरण 2: Final क्लास को एक्सटेंड नहीं किया जा सकता

<?php
final class parentclass {
    final function test() {
        echo "final method in parent class";
    }
}

class childclass extends parentclass {
    function test() {
        echo "overriding final method in parent class";
    }
}

$obj = new childclass();
$obj->test();
?>

आउटपुट

PHP Fatal error: Class childclass may not inherit from final class (parentclass) in line 16

उपयोग के मामले

  • Final मेथड: जब आप चाहते हैं कि एक महत्वपूर्ण मेथड का व्यवहार कभी न बदले (जैसे सुरक्षा जांच, कोर एल्गोरिदम)।
  • Final क्लास: जब आप पूरी क्लास को एक्सटेंशन के लिए बंद करना चाहते हैं (जैसे immutable value objects, यूटिलिटी क्लासेज)।
  • Final प्रॉपर्टीज़ PHP 8.1+ में समर्थित हैं: final public string $name;

नोट

Final कीवर्ड का उपयोग प्रॉपर्टीज़ पर PHP 8.1 से पहले नहीं किया जा सकता। मेथड्स और क्लासेज के लिए यह PHP 5 से उपलब्ध है।

  1. - C# में static कीवर्ड

    हम static कीवर्ड का उपयोग करके क्लास मेंबर्स को static परिभाषित कर सकते हैं। जब हम किसी क्लास के मेंबर को static घोषित करते हैं, तो इसका मतलब है कि चाहे क्लास के कितने भी ऑब्जेक्ट्स बनाए जाएं, static मेंबर की केवल एक ही कॉपी मौजूद होती है।कीवर्ड static का तात्पर्य है कि क्लास के लिए मेंबर का केवल एक

  1. - Java में Final Class

    क्लास को final घोषित करने का मुख्य उद्देश्य क्लास को सबक्लास होने से रोकना है। यदि एक क्लास को final के रूप में चिह्नित किया जाता है तो कोई भी क्लास final क्लास से किसी भी सुविधा को इनहेरिट नहीं कर सकती।public final class Test { // body of class }

  1. - Java में final कीवर्ड

    final Java एलिमेंट्स के लिए एक नॉन-एक्सेस मॉडिफायर है। final मॉडिफायर का उपयोग क्लासेज, मेथड्स और वेरिएबल्स के कार्यान्वयन को अंतिम रूप देने के लिए किया जाता है।Final Variablesएक final वेरिएबल को केवल एक बार स्पष्ट रूप से इनिशियलाइज़ किया जा सकता है। final घोषित एक रेफरेंस वेरिएबल को कभी भी किसी अलग