मुझे अभी भी इस बात के बारे में कुछ भ्रम है। क्या मैं अब तक पाया हैइंटरफेस, एकाधिक विरासत बनाम इंटरफेस का उपयोग क्यों करें, इंटरफेस के लाभ?
(इसी प्रकार के प्रश्नों को पहले से ही यहाँ कहा गया है, लेकिन मैं कुछ अन्य अंक रहा था।) है
अब
इंटरफेस सिर्फ सार तरीकों और अंतिम क्षेत्रों का संग्रह है।
जावा में कोई एकाधिक विरासत नहीं है।
इंटरफेस का उपयोग जावा में एकाधिक विरासत प्राप्त करने के लिए किया जा सकता है।
विरासत का एक मजबूत बिंदु यह है कि हम इसे फिर से लिखने के बिना व्युत्पन्न कक्षा में बेस क्लास के कोड का उपयोग कर सकते हैं। विरासत के लिए यह सबसे महत्वपूर्ण बात हो सकती है।
..
Q1। चूंकि इंटरफेस में केवल अमूर्त विधियां हैं (कोई कोड नहीं) तो हम कैसे कह सकते हैं कि यदि हम किसी इंटरफ़ेस को कार्यान्वित कर रहे हैं तो यह विरासत है? हम इसके कोड का उपयोग नहीं कर रहे हैं।
प्रश्न 2। यदि इंटरफ़ेस को कार्यान्वित करना विरासत नहीं है तो एकाधिक विरासत प्राप्त करने के लिए इंटरफ़ेस का उपयोग कैसे किया जाता है?
क्यू 3। किसी भी तरह इंटरफेस का उपयोग करने का क्या फायदा है? उनके पास कोई कोड नहीं है। हमें इसे लागू करने वाले सभी वर्गों में बार-बार कोड लिखना होगा।
फिर इंटरफेस क्यों बनाना है?
नोट: मुझे एक ऐसा मामला मिला है जिसमें इंटरफेस उपयोगी हैं। इसका एक उदाहरण रननेबल इंटरफेस में है जैसे हमारे पास सार्वजनिक शून्य रन() विधि है जिसमें हम थ्रेड की कार्यक्षमता को परिभाषित करते हैं और कोडिंग में बनाया गया है कि यह विधि एक अलग थ्रेड के रूप में चलाया जाएगा। इसलिए हमें केवल थ्रेड में क्या करना है, कोड को पूर्व-परिभाषित करना है। लेकिन यह चीज सार वर्गों और सभी का उपयोग करके हासिल की जा सकती है।
फिर इंटरफेस का उपयोग करने के सटीक लाभ क्या हैं? क्या यह वास्तव में एकाधिक विरासत है जिसे हम इंटरफेस का उपयोग करके प्राप्त करते हैं?
मुझे लगता है कि आपके कोड में जो संरचना बनाई गई है, वह बेहतर और अधिक तार्किक होगा, जिसमें उपकरण-इंटरफेसिंग के मुकाबले विस्तार-विरासत होगी। मुझे लगता है कि यह एक बुरा उदाहरण है –
@gprathour मैं सहमत हूं, इसलिए कृपया एक बेहतर उदाहरण प्रदान करें :) –