2010-08-30 18 views
7

ऑपरेटर ओवरलोडिंग और ऑपरेटर ओवरराइडिंग के बीच क्या अंतर है?जावा में ऑपरेटर ओवरलोडिंग और ओवरराइडिंग

क्या वे विरासत और कंसोल कार्यक्रम में समान हैं?

+6

* वे विरासत और कंसोल कार्यक्रम में समान हैं *: यह वाक्य बहुत अस्पष्ट है। –

उत्तर

9

आप जावा में ऑपरेटरों (ओवरलोड) ऑपरेटरों को ओवरराइड नहीं कर सकते हैं।

कुछ अन्य भाषाओं में आप ऑपरेटर ओवरलोडिंग और ओवरराइडिंग के बीच अंतर कर सकते हैं, फ़ंक्शन ओवरलोडिंग और ओवरराइटिंग के बीच समान है। जैसे स्कैला ऑपरेटरों में बस कार्य हैं।

+1

स्कैला स्टेटमेंट को मापने के लिए, स्कैला प्रतीकात्मक विधि नामों की अनुमति देता है। यही कारण है कि + एक मान्य विधि नाम है, यहां तक ​​कि ++ - * परिभाषित किया जा सकता है। – gpampara

1

जावा में कोई ऑपरेटर ओवरलोडिंग/ओवरराइडिंग नहीं है।

+4

कोई उपयोगकर्ता परिभाषित अतिरिक्त भाषाई ओवरलोडिंग नहीं है, लेकिन '+' स्पष्ट रूप से परिभाषा द्वारा अधिभारित ऑपरेटर है (यानी स्ट्रिंग कॉन्सटेनेशन या न्यूमेरिक एडिशन, शायद कई शुरुआती लोगों के भ्रम के लिए)। और यह सिर्फ बाइनरी '+' है; एक यूनरी संस्करण भी है। – polygenelubricants

21

ऑपरेटर ओवरलोडिंग और ओवरराइडिंग जावा में समर्थित नहीं हैं। desc निम्नलिखित

चेक से उद्धृत: http://java.sun.com/docs/white/langenv/Simple.doc2.html

2.2.7 नो मोर ऑपरेटर ओवरलोडिंग

नहीं प्रदान की साधन है जिसके द्वारा प्रोग्रामर मानक अंकगणितीय ऑपरेटर को ओवरलोड कर सकते हैं। एक बार फिर, ऑपरेटर ओवरलोडिंग के प्रभाव हो सकते हैं जैसे कक्षा, उपयुक्त आवृत्ति चर, और उन चरों को कुशलतापूर्वक उपयोग करने के लिए उचित तरीके। ऑपरेटर ओवरलोडिंग को हटाकर कोड की सरलीकरण बढ़ जाती है।

6

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

int sum(int var1, int var2) 
{ 
    return (var1+var2); 
} 

int sum(int var1, int var2, int var3) 
{ 
    return (var1+var2+var3); 
} 

वस्तु उन्मुख प्रोग्रामिंग में, आप ओवरराइड (फिर से परिभाषित) एक समारोह है कि आरोह (आधार) वर्ग से विरासत में मिली है। एक वर्ग पदानुक्रम में, जब उप-वर्ग में एक फ़ंक्शन (विधि) का नाम समान होता है और उसके सुपरक्लास में विधि के रूप में हस्ताक्षर टाइप करता है, तो उप-वर्ग में विधि सुपरक्लास में विधि को ओवरराइड करने के लिए कहा जाता है।

+1

जावा में भी आप चरम तर्कों को घोषित कर सकते हैं जैसे 'int sum (int ... vars) '। – m0skit0

3

एक जावा-प्लगइन (लॉमोकॉक की तरह एक एनोटेशन प्रोसेसर) है जिसे "Java-OO" कहा जाता है, जो जावा को ऑपरेटर ओवरलोडिंग जोड़ता है।

यह आपको ऑपरेटर ओवरलोडिंग को अपने स्वयं के वर्गों में आसानी से जोड़ने की अनुमति देता है। इसके अतिरिक्त, जावा एपीआई के कई अंतर्निर्मित वर्ग भी इस प्लगइन का उपयोग करते समय ऑपरेटर ओवरलोडिंग का समर्थन करते हैं। (उदाहरण के लिए: list.get के बजाय (6) या map.get ("हैलो") आप सूची [6] करते हैं और मैप कर सकते हैं [ "हैलो"])

तुम सब करने की ज़रूरत है जावैक के साथ संकलन करते समय क्लासपाथ पर .jar शामिल करें।

सभी प्रमुख आईडीई के लिए प्लगइन हैं: ग्रहण, नेटबीन और इंटेलिजे आईडीईए।

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