2016-01-24 18 views
6

मैं सबसे में अपनी लिखित देखने स्थानोंइंटरफ़ेस सारणी के सभी तरीके हैं?

"All of the methods in an interface are abstract." 

लेकिन एक इंटरफेस भी default methods और static methods और विधि निकायों डिफ़ॉल्ट तरीकों और स्थिर तरीकों के लिए मौजूद हो सकती है।

तो इंटरफ़ेस सार के सभी तरीके हैं?

+4

एंड्रॉइड जावा 8 ** अभी तक ** का उपयोग नहीं कर रहा है, इसलिए इस पल के लिए कोई डिफ़ॉल्ट तरीका नहीं है; सभी सार –

उत्तर

6

यह सही

है अपने सभी पद्धतियों का सार, उसकी पहुँच संशोधक की परवाह किए बिना कर रहे हैं।

एक परिपूर्ण स्पष्टीकरण @coder द्वारा:

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

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

तो अंतर एक अमूर्त वर्ग विधियों को लागू कर सकता है जबकि एक इंटरफ़ेस नहीं कर सकता है।

कारण अलग हैं इसलिए एक वर्ग कई इंटरफेस को कार्यान्वित कर सकता है। जावा और सी # एक वर्ग को एक अभिभावक वर्ग से निहित करने के लिए प्रतिबंधित करते हैं। कुछ भाषाएं आपको कई कक्षाओं से प्राप्त करने की अनुमति देती हैं और आप "पूरी तरह से" अमूर्त वर्ग के माध्यम से इंटरफ़ेस का काम पूरा कर सकते हैं। लेकिन एकाधिक वंशानुक्रम अपनी समस्याओं

Abstract methods and classes.

6

पर दैवज्ञ डॉक्स पर एक नज़र जावा 8 से, एक इंटरफेस भी डिफ़ॉल्ट तरीकों और अमूर्त तरीकों के साथ-साथ स्थिर तरीकों हो सकती है है, अर्थात् खतरनाक डायमंड समस्या। विधि निकायों डिफ़ॉल्ट और स्थैतिक तरीकों के लिए मौजूद हैं।

जावा 8 में सबसे बड़ा डिज़ाइन परिवर्तन इंटरफेस की अवधारणा के साथ है। जावा 7 से पहले, हम इंटरफेस में केवल विधि घोषणाएं कर सकते थे। लेकिन जावा 8 से, हमारे पास इंटरफ़ेस में डिफ़ॉल्ट विधियां और स्थैतिक विधियां हो सकती हैं।

इंटरफ़ेस डिफ़ॉल्ट विधि

इंटरफ़ेस में एक डिफ़ॉल्ट विधि बनाने के लिए, हम विधि हस्ताक्षर के साथ "डिफ़ॉल्ट" कीवर्ड का उपयोग करने की जरूरत है।

इंटरफ़ेस स्थिर तरीकों

स्टेटिक तरीकों सिवाय इसके कि हम नहीं कार्यान्वयन कक्षाओं में उन्हें ओवरराइड कर सकते हैं तरीकों डिफ़ॉल्ट के समान हैं। यह सुविधा में हमें कक्षाओं में खराब कार्यान्वयन के कारण अवांछित परिणामों से परहेज करने में सहायता करती है।

में और अधिक जानकारी this

0

एक अंतरफलक में सभी तरीकों की जांच के लिए सार है। यह कथन सत्य है। एक इंटरफेस के लिए केवल एकाधिक विरासत लागू करने के लिए सार तत्वों के लिए अनिवार्य है।

-1

इंटरफ़ेस में सभी विधि हैं सार और डिफ़ॉल्ट रूप से जावा में खेतों स्थिर, सार्वजनिक और अंतिम हैं और सभी सदस्य हैं सार्वजनिक

और हम इंटरफ़ेस के सदस्यों को निजी और संरक्षित नहीं बना सकते ।

0

यह जीन बॉयर्सकी & स्कॉट सेलिकोफ की पुस्तक, ओसीए: ओरेकल® प्रमाणित एसोसिएट जावा एसई 8 प्रोग्रामर I स्टडी गाइड परीक्षा 1Z0-808 के अनुसार गलत है।

। । । क्योंकि जावा 8 से पहले सभी इंटरफेस विधियों को अमूर्त माना जाएगा। चूंकि जावा 8 में अब डिफ़ॉल्ट और स्थैतिक विधियां शामिल हैं और वे कभी भी सार नहीं हैं, आप यह नहीं मान सकते कि अमूर्त संशोधक को संकलक द्वारा सभी विधियों पर लागू किया जाएगा। (पुस्तक का पृष्ठ 346)

0

जावा इंटरफेस में सभी विधि अमूर्त हैं, केवल तभी जब उन्हें स्पष्ट रूप से स्थिर घोषित किया जाता है तो वे अमूर्त नहीं हैं।

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