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

जावा वर्ग अमूर्त और अंतिम दोनों क्यों नहीं हो सकता है?

सार वर्ग

जिस वर्ग में 0 या अधिक अमूर्त विधियाँ होती हैं, उसे अमूर्त वर्ग कहा जाता है। यदि इसमें कम से कम एक सार विधि है, तो इसे सार घोषित किया जाना चाहिए।

यदि आप एक अमूर्त वर्ग में ठोस पद्धति का उपयोग करना चाहते हैं, तो आपको कक्षा को इनहेरिट करने की आवश्यकता है, अमूर्त विधियों (यदि कोई हो) को कार्यान्वयन प्रदान करें और फिर, आप उपवर्ग वस्तु का उपयोग करके आवश्यक विधियों को लागू कर सकते हैं।

उदाहरण

निम्नलिखित जावा उदाहरण में, सार वर्ग MyClass में नाम प्रदर्शन के साथ एक ठोस विधि है।

एक अन्य वर्ग (AbstractClassExample) से हम क्लास MyClass को इनहेरिट कर रहे हैं और सबक्लास ऑब्जेक्ट का उपयोग करके इसकी ठोस विधि डिस्प्ले को लागू कर रहे हैं।

abstract class MyClass {
   public void display() {
      System.out.println("This is a method of abstract class");
   }
}
public class AbstractClassExample extends MyClass {
   public static void main(String args[]) {
      new AbstractClassExample().display();
   }
}

आउटपुट

This is a method of abstract class

फाइनल क्लास

यदि आप एक अंतिम वर्ग घोषित करते हैं जिसे आप विस्तारित नहीं कर सकते हैं यदि आप अंतिम वर्ग का विस्तार करने का प्रयास करते हैं, तो एक संकलन समय त्रुटि उत्पन्न होगी जो कहती है कि "अंतिम सुपरक्लास से विरासत में नहीं मिल सकता"

उदाहरण

निम्नलिखित जावा प्रोग्राम में, हमारे पास SuperClass . नाम के साथ एक अंतिम क्लास है और हम इसे किसी अन्य वर्ग (सबक्लास) से अंतर्निहित करने का प्रयास कर रहे हैं।

final class SuperClass {
   public void display() {
      System.out.println("This is a method of the superclass");
   }
}

संकलन समय त्रुटि

संकलन करने पर, यह प्रोग्राम एक संकलन त्रुटि उत्पन्न करता है जैसा कि नीचे दिखाया गया है -

SubClass.java:7: error: cannot inherit from final SuperClass
public class SubClass extends SuperClass{
                              ^
1 error

सार और अंतिम दोनों

यदि आप एक वर्ग सार घोषित करते हैं, तो इसका उपयोग करने के लिए, आपको इसे विस्तारित करना होगा और यदि आप कक्षा फाइनल घोषित करते हैं तो आप इसे विस्तारित नहीं कर सकते हैं, क्योंकि दोनों एक दूसरे के साथ विरोधाभास करते हैं, यदि आप ऐसा करते हैं तो आप एक वर्ग को सार और अंतिम दोनों घोषित नहीं कर सकते हैं। उत्पन्न होगा।

उदाहरण

public final abstract class Example {
   public void sample() {
   }
}

संकलन समय त्रुटि

Example.java:1: error: illegal combination of modifiers: abstract and final

public final abstract class Example {
                      ^
1 error

  1. जावा में स्ट्रिंग क्लास अपरिवर्तनीय या अंतिम क्यों है?

    स्ट्रिंग अपरिवर्तनीय है इसका मतलब है कि हम ऑब्जेक्ट को स्वयं नहीं बदल सकते हैं, लेकिन हम ऑब्जेक्ट के संदर्भ को बदल सकते हैं। स्ट्रिंग को अंतिम रूप दिया जाता है ताकि अन्य इसे विस्तारित न कर सकें और इसकी अपरिवर्तनीयता को नष्ट कर सकें। सुरक्षा पैरामीटर्स को आमतौर पर नेटवर्क कनेक्शन, डेटाबेस कनेक्शन य

  1. जावा में डिफ़ॉल्ट रूप से इंटरफ़ेस चर स्थिर और अंतिम होते हैं, क्यों?

    एक इंटरफ़ेस व्यवहार के एक प्रोटोकॉल को परिभाषित करता है न कि हमें कैसे लागू किया जाना चाहिए। एक वर्ग जो एक इंटरफ़ेस को लागू करता है उस इंटरफ़ेस द्वारा परिभाषित प्रोटोकॉल का पालन करता है। इंटरफ़ेस चर स्थिर हैं क्योंकि जावा इंटरफेस को अपने आप तत्काल नहीं किया जा सकता है। चर का मान एक स्थिर संदर्भ में

  1. जावा में अंतिम कीवर्ड

    final जावा तत्वों के लिए एक गैर-पहुंच संशोधक है। अंतिम संशोधक का उपयोग कक्षाओं, विधियों और चर के कार्यान्वयन को अंतिम रूप देने के लिए किया जाता है। अंतिम चर एक अंतिम चर को स्पष्ट रूप से केवल एक बार प्रारंभ किया जा सकता है। अंतिम घोषित किए गए संदर्भ चर को किसी भिन्न वस्तु को संदर्भित करने के लिए कभी