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

जावा में एकाधिक वंशानुक्रम समर्थित क्यों नहीं है


Java में, एक वर्ग एक से अधिक वर्ग का विस्तार नहीं कर सकता है। इसलिए निम्नलिखित अवैध है -

उदाहरण

public class extends Animal, Mammal{}

हालांकि, एक वर्ग एक या अधिक इंटरफेस को लागू कर सकता है, जिससे जावा को कई विरासतों की असंभवता से छुटकारा पाने में मदद मिली है।

इसके पीछे का कारण अस्पष्टता को रोकना है।

ऐसे मामले पर विचार करें जहां कक्षा बी कक्षा ए और कक्षा सी का विस्तार करती है और कक्षा ए और सी दोनों में एक ही विधि प्रदर्शन() है।

अब जावा कंपाइलर यह तय नहीं कर सकता कि उसे कौन सी डिस्प्ले मेथड इनहेरिट करनी चाहिए। ऐसी स्थिति को रोकने के लिए, जावा में एकाधिक विरासत की अनुमति नहीं है।


  1. सी ++ बनाम जावा में विरासत

    सी ++ और जावा में, वंशानुक्रम की अवधारणा है। इनहेरिटेंस गुणों का उपयोग कोड का पुन:उपयोग करने और दो वस्तुओं के बीच संबंध बनाने के लिए किया जाता है। यहां हम C++ में इनहेरिटेंस और Java में इनहेरिटेंस के बीच कुछ बुनियादी अंतर देखेंगे। जावा में, सभी वर्ग ऑब्जेक्ट क्लास का विस्तार कर रहे हैं। तो कक्षाओ

  1. C++ में एकाधिक वंशानुक्रम

    एकाधिक वंशानुक्रम तब होता है जब एक वर्ग एक से अधिक आधार वर्ग से विरासत में मिलता है। तो वर्ग एकाधिक वंशानुक्रम का उपयोग करके कई आधार वर्गों से सुविधाओं को प्राप्त कर सकता है। यह ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज जैसे C++ की एक महत्वपूर्ण विशेषता है। एक आरेख जो एकाधिक वंशानुक्रम प्रदर्शित करता

  1. जावा में विरासत के प्रकार

    Java तीन प्रकार के इनहेरिटेंस का समर्थन करता है - एकल स्तर की विरासत - एक वर्ग को एक वर्ग से गुण विरासत में मिलते हैं। उदाहरण के लिए, क्लास बी को क्लास ए विरासत में मिली है। बहुस्तरीय वंशानुक्रम - एक वर्ग को उस वर्ग से गुण विरासत में मिलते हैं, जिसके पास फिर से गुण होते हैं पदानुक्रमित वंशानुक्रम -