2016-04-29 8 views
5

मैं जावा 8 में इंटरफ़ेस पढ़ने के दौरान इस विषय में आया हूं, ऐसे परिदृश्य हैं जहां हम डिफ़ॉल्ट या स्थैतिक कीवर्ड का उपयोग करके इंटरफ़ेस में विधि को परिभाषित करते हैं, जिससे अगले बच्चे को या तो उसी विधि को फिर से परिभाषित करने या इसे लागू करने की अनुमति मिलती है। क्या इसका मतलब एकाधिक विरासत है? एक और मुद्दा है जो मैंने पाया है कि, वापसी प्रकार सह-प्रकार प्रकार होना चाहिए और समस्या संकलित करना चाहिए, इसका मतलब है कि यह अभी भी एकाधिक विरासत का समर्थन नहीं करता है? क्या हम कह सकते हैं कि जावा कई विरासत का समर्थन करता है? मुझे इस विषय के संबंध में अधिक जानकारी दें।क्या जावा 8 एकाधिक विरासत का समर्थन करता है?

+2

@Draken मुझे नहीं लगता कि अन्य प्रश्न वास्तव में अपने सवाल का जवाब है है - कि सवाल पर इंटरफेस के भीतर जावा 8 और डिफ़ॉल्ट कार्यान्वयन के बारे में बात नहीं कर रहा है के रूप में सब। – GhostCat

+0

भ्रम शब्द विरासत के उपयोग में है, विरासत तकनीकी रूप से केवल कक्षाओं को विस्तारित करने के लिए उपयोग किया जाना चाहिए, इंटरफेस के लिए नहीं। इसलिए हम एकाधिक विरासत नहीं कर सकते हैं, लेकिन कई कार्यान्वयन कर सकते हैं। मैं आगे इस विषय पर पढ़ने महसूस हाँ आप कर रहे हैं सही @ Jägermeister – Draken

+0

मदद मिलेगी, मैं अभी भी उस शब्द का उपयोग कर के रूप में यह लाता से बच जाएंगे तालिका के मुकाबले ज्यादा भ्रम है। अधिक सामान्य शब्दावली के साथ चिपकना बेहतर है जैसे कि यह विरासत कहने से ओवरराइडिंग है। –

उत्तर

5

कि एकाधिक वंशानुक्रम का मतलब है?

इंटरफेस के लिए, हाँ, लेकिन कक्षाएं नहीं। आमतौर पर कक्षाएं लोग सोचते हैं क्योंकि केवल कक्षाओं में फ़ील्ड और कन्स्ट्रक्टर हो सकते हैं। यह जावा 1.0

रिटर्न प्रकार सह-प्रकार प्रकार होना चाहिए और समस्या संकलित करना चाहिए, जिसका अर्थ है कि यह अभी भी एकाधिक विरासत का समर्थन नहीं करता है?

कॉन्वर्स रिटर्न प्रकार की आवश्यकता से संबंधित नहीं है कि आपके पास एकाधिक विरासत है या नहीं।

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

इंटरफेस के लिए, हाँ।

+0

यदि हम एक ही डिफ़ॉल्ट विधि वाले 2 अलग-अलग इंटरफेस लिख रहे हैं लेकिन अलग-अलग रिटर्न प्रकार के साथ जावा को रिटर्न टाइप को लागू करने वाले वर्ग में सह-प्रकार का प्रकार होने की उम्मीद है। सह-प्रकार के प्रकार के बिना, जावा संकलक त्रुटि फेंकता है। लेकिन इसे एकाधिक विरासत का समर्थन करने के लिए, वापसी का प्रकार अलग हो सकता है। हम अपने जावा समर्थन एकाधिक विरासत बनाने के लिए स्थिर विधि का उपयोग कर सकते हैं। फिर भी एक समस्या है, हमें वास्तव में अपने स्थिर तरीकों का उपयोग करने के लिए अभिभावक इंटरफेस को जोड़ना है ... –

+1

@ शखननिजामुद्दीन यदि आपके पास दो विधियां हैं जो असंगत प्रकार लौटाती हैं, तो डेवलपर के लिए समान नाम देने के लिए भ्रमित हो सकता है। मैं अलग-अलग नाम देने का सुझाव दूंगा ताकि डेवलपर इसका उपयोग कर सकें जिसके परिणामस्वरूप उन्हें उम्मीद करनी चाहिए। –

+0

हाँ अलग-अलग रिटर्न प्रकार वाले विधियों के लिए अलग-अलग नामों का उपयोग करना अच्छा है। हो सकता है कि आने वाले जावा संस्करणों (धारणा का थोड़ा, आशावादी होना) हम इस सह-प्रकार के प्रकार को अस्पष्ट होने के लिए देख सकते हैं। :) –

-2

इंटरफ़ेस ,, Interface..all रास्ता .. धन्यवाद

+0

फिर भी मामले में अस्पष्टता होगी एकाधिक विरासत को समर्थित करने के लिए रिटर्न प्रकार मेल नहीं खाता है, जावा को रिटर्न प्रकार को सह-प्रकार के प्रकार की आवश्यकता होती है।लेकिन उपयोगकर्ता अपना खुद का रिटर्न प्रकार चुनने के लिए स्वतंत्र है ... –

संबंधित मुद्दे