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

Java में कंस्ट्रक्टर final क्यों नहीं हो सकता?

final कीवर्ड ओवरराइडिंग को रोकता है। चूंकि कंस्ट्रक्टर इनहेरिट नहीं होते, उन्हें ओवरराइड नहीं किया जा सकता, इसलिए कंस्ट्रक्टर पर final का कोई अर्थ नहीं है।

त्रुटि उदाहरण

public class Student {
    public final Student() { // संकलन त्रुटि
        this.name = "Raju";
    }
}

संकलन त्रुटि

Student.java:6: error: modifier final not allowed here
    public final Student(){
    ^

व्याख्या

  • सबक्लास सुपरक्लास कंस्ट्रक्टर को इनहेरिट नहीं करते; वे अपने खुद के परिभाषित करते हैं।
  • super() कॉल सुपरक्लास कंस्ट्रक्टर को आह्वान करता है, ओवरराइड नहीं करता।
  • इसलिए, final कंस्ट्रक्टर पर लागू नहीं होता।

अन्य अमान्य मॉडिफायर

कंस्ट्रक्टर abstract, static, synchronized, native, या strictfp भी नहीं हो सकते।

  1. - Java में Final Class

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

  1. - Java में Final Variable

    एक final वेरिएबल को केवल एक बार स्पष्ट रूप से इनिशियलाइज़ किया जा सकता है। final घोषित एक रेफरेंस वेरिएबल को कभी भी किसी अलग ऑब्जेक्ट को संदर्भित करने के लिए पुनः असाइन नहीं किया जा सकता।हालांकि, ऑब्जेक्ट के भीतर डेटा को बदला जा सकता है। इसलिए, ऑब्जेक्ट की स्थिति बदली जा सकती है लेकिन रेफरेंस नहीं।व

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

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