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

PHP में final कीवर्ड


PHP में final कीवर्ड

PHP में **final** कीवर्ड **मेथड्स** और **क्लासेस** के लिए उपयोग किया जाता है:

  • मेथड्स के लिए: मेथड **ओवरराइडिंग रोकता है**।
  • क्लासेस के लिए: **विरासत (इनहेरिटेंस) रोकता है**।

उदाहरण 1: फाइनल मेथड

<?php
class Base {
    final public function display() {
        echo "बेस क्लास फ़ंक्शन फाइनल घोषित!";
    }
    public function demo() {
        echo "बेस क्लास फ़ंक्शन!";
    }
}

class Derived extends Base {
    public function demo() {
        echo "डेराइव्ड क्लास फ़ंक्शन!";
    }
    // display() को ओवरराइड करने का प्रयास → फैटल एरर
}

$ob = new Derived();
$ob->demo(); // डेराइव्ड क्लास फ़ंक्शन!
?>

आउटपुट

डेराइव्ड क्लास फ़ंक्शन!

उदाहरण 2: फाइनल क्लास

<?php
final class Base {
    final public function display() {
        echo "बेस क्लास फ़ंक्शन फाइनल घोषित!";
    }
    public function demo() {
        echo "बेस क्लास फ़ंक्शन!";
    }
}

class Derived extends Base { // फैटल एरर: फाइनल क्लास से विरासत नहीं ले सकते
    public function demo() {
        echo "डेराइव्ड क्लास फ़ंक्शन!";
    }
}

$ob = new Derived();
$ob->demo();
?>

आउटपुट (त्रुटि)

PHP Fatal error: Class Derived may not inherit from final class (Base) in ... on line 19

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

  • फाइनल मेथड: जब आप चाहते हैं कि एक महत्वपूर्ण मेथड का व्यवहार चाइल्ड क्लासेस में न बदले (जैसे सिक्योरिटी चेक, कोर एल्गोरिदम)।
  • फाइनल क्लास: जब क्लास को एक्सटेंड करने के लिए डिज़ाइन नहीं किया गया है (जैसे वैल्यू ऑब्जेक्ट्स, DTOs, कुछ लाइब्रेरी क्लासेस)।
  • प्रदर्शन: फाइनल मेथड्स इंजन को ऑप्टिमाइज़ेशन (इनलाइनिंग, डिवर्चुअलाइज़ेशन) की अनुमति देते हैं।

नोट

  • प्रॉपर्टीज़ `final` नहीं हो सकतीं (PHP 8.1+ में `readonly` प्रॉपर्टीज़ का उपयोग करें)।
  • कंस्ट्रक्टर `final` हो सकते हैं (ऑब्जेक्ट निर्माण नियंत्रण के लिए)।
  • इंटरफेस मेथड्स डिफ़ॉल्ट रूप से फाइनल नहीं होते जब तक कि क्लास में कार्यान्वित न हों।
  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 घोषित एक रेफरेंस वेरिएबल को कभी भी किसी अलग