ओव्हरराइडिंग आणि ओव्हरलोडिंग दरम्यानचा अंतर

Anonim

ओव्हरराइडिंग वि ओव्हरलोडिंग

पद्धत अधोलेखन आणि पद्धत ओव्हरलोडिंग दोन प्रोग्रामिंग भाषांमध्ये दोन संकल्पना / तंत्र / वैशिष्ट्ये आढळतात. दोन्ही संकल्पनाने प्रोग्रामरला समान नावाच्या पद्धतींसाठी भिन्न कार्यान्वयन करण्याची परवानगी दिली आहे. पद्धत ओव्हररायडिंगमुळे प्रोग्रामरला त्याच्या सुपर क्लासमध्ये आधीपासूनच आधीपासूनच परिभाषित केलेल्या पध्दतीमध्ये सब क्लासच्या अंतर्गत पर्यायी कार्यान्वयन करण्याची परवानगी दिली जाते. पद्धत ओव्हरलोडिंगमुळे प्रोग्रामर एकाच नावाने (समान श्रेणीतील) अनेक पद्धतींसाठी विविध लागूकरण प्रदान करू शकतात.

ओव्हरराइडिंग काय आहे?

वर सांगितल्याप्रमाणे, एक वर्ग ऑब्जेक्ट ओरिएंटेड प्रोग्रॅमिंग भाषांमध्ये सुपर क्लास किंवा पालक वर्ग विस्तारित करू शकतो. एखाद्या लहान मुलाच्या स्वतःच्या पद्धती असू शकतात किंवा वैकल्पिकरित्या त्याच्या मूळ वर्ग (किंवा त्याच्या मूळ पालक वर्गातील) मध्ये आधीपासूनच परिभाषित केलेल्या पद्धतींसाठी स्वतःचे लागू करणे आवश्यक आहे. जेव्हा नंतरचे असे घडते, तेव्हा याला पद्धत ओव्हररायडिंग म्हणतात. दुस-या शब्दात सांगायचे तर बालवर्ग एक समान स्वाक्षरी असलेल्या पद्धतीने अंमलबजावणी आणि आपल्या पालक वर्गामध्ये आधीपासूनच परिभाषित केलेल्या पद्धतीप्रमाणे परत मिळण्याची पद्धत प्रदान करत असेल तर त्या पद्धतीने मुलांच्या वर्गाच्या अंमलबजावणीवरून (पुनर्स्थित करणे). म्हणून, जर क्लासमध्ये ओव्हरराइड पद्धत असेल, तर रनटाइम प्रणालीला कोणत्या पद्धतीने अंमलबजावणीचा वापर करावा हे ठरवावे लागेल. हा मुद्दा त्यास वापरण्यासाठी वापरलेल्या ऑब्जेक्टच्या अचूक प्रकारची पाहुन निराकरण झाले आहे. मूळ श्रेणीचा एखादा उद्देश अधिलिखित पध्दती वापरण्यासाठी वापरला जातो, तर मूळ वर्गात अंमलबजावणीचा वापर केला जातो. त्याचप्रमाणे, जर मुलाचा वापर केला जात असेल तर त्या मुलाचा अंमलबजावणी वापरला जातो. जावा, एआयफेल, सी ++ आणि पायथॉनसारख्या आधुनिक प्रोग्रामिंग भाषेने अधोरेखित करण्याची परवानगी दिली आहे.

ओव्हरलोडिंग म्हणजे काय?

पद्धत ओव्हरलोडिंग काही प्रोग्रामिंग भाषांद्वारे समान नावाने एकापेक्षा जास्त पद्धतीने तयार करण्याकरिता प्रदान केलेले एक वैशिष्ट्य आहे, परंतु भिन्न इनपुट आणि आउटपुट प्रकारांनुसार. आधुनिक प्रोग्रामिंग भाषा जसे जावा, सी #, सी ++ आणि व्हीबी नेट, हे वैशिष्ट्य उपलब्ध आहे. आपण समान पद्धतीने दुसरी पद्धत तयार करून परंतु भिन्न पद्धत स्वाक्षरीसह किंवा भिन्न रिटर्न प्रकार (किंवा दोन्ही) वापरून आपण एक पद्धत ओव्हरलोड करू शकता. उदाहरणार्थ, जर आपण समान श्रेणीतील मेथड 1 (टाईप 1 टी 1) आणि मेथड 1 (टाईप 2 टी 2) असाल तर ते ओव्हरलोड झाले आहेत. मग सिस्टमला कोणती फाइल कार्यान्वित करायची हे ठरवावे लागेल. हे भेद पद्धतीमध्ये पारित करण्यात आलेल्या पॅरामीटर (ट्स) च्या प्रकारावर पहात आहे. जर तर्क 1 प्रकारचा आहे, तर प्रथम अंमलबजावणी म्हणतात, तर तो type2 च्या प्रकारात आहे, तर दुसरा अंमलबजावणी म्हणतात.

अधिलिखित आणि ओव्हरलोडिंग मध्ये काय फरक आहे?

तरी, पद्धत ओव्हररायडिंग व मेथड ओव्हरलोडिंगचा वापर वेगवेगळ्या कार्यान्वयनांसह एक पद्धत प्रदान करण्यासाठी केला जातो, तथापि या दोन संकल्पना / तंत्रामध्ये महत्वाची फरक आहेत. सर्वप्रथम, पद्धत ओव्हररायडिंगचे विषय नेहमीच वेगवेगळ्या वर्गांमध्ये राहतात, तर ओव्हरलोडिंग पध्दतीची विषयवस्तू त्याच श्रेणीमध्येच राहतात. याचा अर्थ ऑब्जेक्ट ओरिएंटेड प्रोग्रॅमिंग भाषांमध्ये वारसा मिळवणे शक्य आहे. ओव्हरड्रॉडींग ही गैर ऑब्जेक्ट-ओरिएंटेड भाषेमध्ये उपलब्ध होऊ शकते. दुसऱ्या शब्दांत, आपण सुपर क्लासमध्ये एक पद्धत अधिलिखित करता, परंतु आपण आपल्या स्वतःच्या वर्गात एक पद्धत ओव्हरलोड करू शकता.

आणखी एक फरक असा की ओव्हररायड पध्दतींमध्ये समान पद्धत नाव, पद्धत स्वाक्षरी आणि रिटर्न प्रकार आहेत, परंतु ओव्हरलोड पद्धती वेगवेगळी असणे आवश्यक आहे स्वाक्षरी किंवा परतीच्या प्रकारात (नाव समान असावे). दोन अधिलिखीत पद्धतींमध्ये फरक करण्यासाठी, वापरलेल्या आयत आयओसाठी वापरल्या जाणार्या ऑब्जेक्टचा तंतोतंत प्रकार, दोन ओव्हरलोड पद्धतींमध्ये फरक करताना पॅरामीटरच्या प्रकारांचा वापर केला जातो. आणखी एक मुख्य फरक म्हणजे ओव्हरलोडिंग संकलित वेळेत सोडवली जाते, आणि ओव्हरराइड करताना रनटाइमवेळी निराकरण केले जाते.