Java enum Inheritance and Interface

इस ट्यूटोरियल में, आप सीखेंगे कि एनम वर्गों का वंशानुक्रम क्यों संभव नहीं है। आप एक एनम वर्ग में इंटरफेस को लागू करना भी सीखेंगे।

इस ट्यूटोरियल को सीखने से पहले, इसके बारे में सुनिश्चित कर लें

  • जावा एनम
  • जावा विरासत
  • जावा इंटरफेस

एक enum कक्षा से एक कक्षा में प्रवेश करना

जावा में, एनम वर्ग finalडिफ़ॉल्ट रूप से हैं। इसलिए, हम अन्य वर्गों से इसे प्राप्त नहीं कर सकते हैं। उदाहरण के लिए,

 enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A 

किसी अन्य कक्षा से एक एनुम क्लास इनहेरिट करना

हम जावा में एनम वर्गों का विस्तार नहीं कर सकते हैं। ऐसा इसलिए है क्योंकि जावा के सभी एनम से विरासत में मिला है java.lang.Enum। और जावा में कई वर्गों (बहु विरासत) का विस्तार करने की अनुमति नहीं है।

उदाहरण के लिए,

 class A ( // class body ) enum B extends A ( // class body ) 

यह एक त्रुटि उत्पन्न करेगा।

जावा Enum और इंटरफ़ेस

जैसा कि हमने सीखा है, हम जावा में एनम की कक्षाएं नहीं ले सकते हैं। हालांकि, एनम वर्ग इंटरफेस को लागू कर सकते हैं।

उदाहरण: Enum कार्यान्वयन इंटरफ़ेस

 interface Pizza ( public void displaySize(); ) enum Size implements Pizza ( SMALL, MEDIUM, LARGE, EXTRALARGE; public void displaySize() ( System.out.println("The size is " + this); ) ) class Main ( public static void main(String() args) ( Size.MEDIUM.displaySIze(); ) ) 

आउटपुट

 आकार मेडम है 

उपरोक्त उदाहरण में, हमने एक एनम वर्ग आकार बनाया है। यह वर्ग पिज्जा इंटरफेस को लागू कर रहा है।

चूंकि हम एक इंटरफ़ेस लागू कर रहे हैं, इसलिए हमने displaySize()एनम क्लास के अंदर अमूर्त पद्धति का कार्यान्वयन प्रदान किया है ।

दिलचस्प लेख...