பரம்பரை மற்றும் பாலிமார்பிஸத்திற்கு இடையிலான வேறுபாடு
உள்ளடக்கம்
மரபுரிமை அனுமதிக்கிறது, குறியீடு மறுபயன்பாடு மற்றும் பாலிமார்பிசம் என்பது ஒரு வடிவத்தின் வெவ்வேறு வடிவத்துடன் நிகழ்கிறது. பரம்பரை மற்றும் பாலிமார்பிஸத்திற்கு இடையிலான அடிப்படை வேறுபாடு என்னவென்றால், ஏற்கனவே இருக்கும் குறியீட்டை ஒரு நிரலில் மீண்டும் பயன்படுத்த மரபுரிமை அனுமதிக்கிறது, மேலும் ஒரு செயல்பாட்டின் எந்த வடிவத்தை செயல்படுத்த வேண்டும் என்பதை மாறும் வகையில் தீர்மானிப்பதற்கான ஒரு பொறிமுறையை பாலிமார்பிசம் வழங்குகிறது.
- ஒப்பீட்டு விளக்கப்படம்
- வரையறை
- முக்கிய வேறுபாடுகள்
- முடிவுரை
ஒப்பீட்டு விளக்கப்படம்
ஒப்பீட்டுக்கான அடிப்படை | வாரிசு உரிமை | பல்லுருவத்தோற்றத்தையும் |
---|---|---|
அடிப்படை | ஏற்கனவே இருக்கும் வகுப்பின் பண்புகளைப் பயன்படுத்தி மரபுரிமை ஒரு புதிய வகுப்பை உருவாக்குகிறது. | பாலிமார்பிசம் என்பது அடிப்படையில் பல வடிவங்களுக்கான பொதுவான இடைமுகமாகும். |
நடைமுறைப்படுத்தல் | பரம்பரை அடிப்படையில் வகுப்புகளில் செயல்படுத்தப்படுகிறது. | பாலிமார்பிசம் அடிப்படையில் செயல்பாடு / முறைகளில் செயல்படுத்தப்படுகிறது. |
பயன்பாட்டு | OOP இல் மீண்டும் பயன்படுத்தக்கூடிய கருத்தை ஆதரிக்கவும் குறியீட்டின் நீளத்தை குறைக்கவும். | தொகுக்கும் நேரத்தில் (ஓவர்லோடிங்) அதே போல் ரன் டைம் (மேலெழுதும்) எந்த வடிவத்தின் செயல்பாட்டை செயல்படுத்த வேண்டும் என்பதை தீர்மானிக்க பொருளை அனுமதிக்கிறது. |
படிவங்கள் | பரம்பரை என்பது ஒரு பரம்பரை, பல பரம்பரை, பல நிலை பரம்பரை, படிநிலை பரம்பரை மற்றும் கலப்பின பரம்பரை. | பாலிமார்பிசம் ஒரு தொகுக்கும் நேர பாலிமார்பிசம் (ஓவர்லோடிங்) அல்லது ரன்-டைம் பாலிமார்பிசம் (மேலெழுதும்) ஆக இருக்கலாம். |
உதாரணமாக | வகுப்பு அட்டவணை ஒரு தளபாடமாக இருப்பதால், வகுப்பு தளபாடங்களின் அம்சத்தை வகுப்பு அட்டவணை பெறலாம். | கிளாஸ் ஸ்டடி_டேபிள் செட்_கோலர் () மற்றும் ஒரு டைனிங்_டேபிள் செயல்பாட்டு செட்_ கலர் () ஐயும் கொண்டிருக்கலாம், எனவே, செட்_கோலர் () செயல்பாட்டின் எந்த வடிவத்தை செயல்படுத்தலாம், நேரம் மற்றும் இயக்க நேரம் இரண்டையும் தீர்மானிக்க முடியும். |
பரம்பரை வரையறை:
OOP இன் முக்கியமான அம்சங்களில் ஒன்று மரபுரிமை, இது “மறுபயன்பாட்டை” வலுவாக ஆதரிக்கிறது. ஏற்கனவே உள்ள வகுப்பின் பண்புகளை மீண்டும் பயன்படுத்துவதன் மூலம் புதிய வகுப்பை உருவாக்குவது என மறுபயன்பாடு விவரிக்கப்படலாம். பரம்பரை பரம்பரையில், ஒரு அடிப்படை வர்க்கம் உள்ளது, இது பெறப்பட்ட வர்க்கத்தால் மரபுரிமையாக உள்ளது. ஒரு வர்க்கம் வேறு எந்த வகுப்பையும் பெறும்போது, அடிப்படை வகுப்பின் உறுப்பினர் (கள்) பெறப்பட்ட வகுப்பின் உறுப்பினர் (கள்) ஆகிறார்கள்.
ஒரு வகுப்பைப் பெறுவதற்கான பொதுவான வடிவம் பின்வருமாறு:
வர்க்கம் பெறப்பட்ட-வகுப்பு-பெயர்: அணுகல்-விவரக்குறிப்பு அடிப்படை-வகுப்பு-பெயர் {// வகுப்பின் உடல்};
இங்கே, அணுகல் விவரக்குறிப்பு அடிப்படை வகுப்பில் உள்ள உறுப்பினர் (கள்) பெறப்பட்ட வகுப்பிற்கு அணுகல் பயன்முறையை (தனியார், பொது, பாதுகாக்கப்பட்ட) வழங்குகிறது. அணுகல் விவரக்குறிப்பு எதுவும் இல்லை என்றால், முன்னிருப்பாக, இது “தனிப்பட்ட” என்று கருதப்படுகிறது. சி ++ இல், பெறப்பட்ட வகுப்பு “struct” ஆக இருந்தால், அணுகல் விவரக்குறிப்பு இயல்பாக “பொது” ஆகும்.
சி ++ இல், பரம்பரை ஐந்து வடிவங்களில் அடையப்படலாம். அவற்றை இவ்வாறு வகைப்படுத்தலாம்: -
- ஒற்றை மரபுரிமை (ஒரே ஒரு சூப்பர் வகுப்பு)
- பல மரபுரிமை (பல சூப்பர் கிளாஸ்கள்)
- படிநிலை மரபுரிமை (ஒரு சூப்பர் வகுப்பு, பல துணைப்பிரிவுகள்)
- பல மரபுரிமை (பெறப்பட்ட வகுப்பிலிருந்து பெறப்பட்டது)
ஜாவாவில், “நீட்டிக்கிறது” என்ற முக்கிய சொல்லைப் பயன்படுத்தி வர்க்கம் மற்ற வகுப்பைப் பெறுகிறது. ஜாவாவில், அடிப்படை வகுப்பு ஒரு சூப்பர் வகுப்பு என்றும், பெறப்பட்ட வகுப்பு துணைப்பிரிவு என்றும் குறிப்பிடப்படுகிறது. ஒரு துணைப்பிரிவு அடிப்படை வகுப்பின் உறுப்பினர்களை அணுக முடியாது, அவை “தனிப்பட்டவை” என்று அறிவிக்கப்படுகின்றன. ஜாவாவில் வகுப்பைப் பெறும் பொதுவான வடிவம் பின்வருமாறு.
வர்க்கம் பெறப்பட்ட-வகுப்பு-பெயர் அடிப்படை-வகுப்பு-பெயர் {// வகுப்பின் உடல்};
ஜாவா பல பரம்பரை பரம்பரையை ஆதரிக்கவில்லை, அதேசமயம் அது பல நிலை வரிசைக்கு துணைபுரிகிறது. ஜாவாவில், சில நேரங்களில் ஒரு சூப்பர் வகுப்பு அதன் செயல்படுத்தல் விவரங்களை மறைக்க விரும்பலாம், மேலும் அது அந்தத் தரவின் சில பகுதியை “தனிப்பட்டதாக” ஆக்குகிறது. ஜாவாவைப் போலவே, ஒரு துணைப்பிரிவும் சூப்பர் கிளாஸின் தனிப்பட்ட உறுப்பினர்களை அணுக முடியாது, ஒரு துணைப்பிரிவு அந்த உறுப்பினர்களை அணுகவோ அல்லது துவக்கவோ விரும்பினால், ஜாவா ஒரு தீர்வை வழங்குகிறது. “சூப்பர்” என்ற முக்கிய சொல்லைப் பயன்படுத்தி துணைப்பிரிவு அதன் உடனடி சூப்பர் கிளாஸின் உறுப்பினர்களைக் குறிப்பிடலாம். நினைவில் கொள்ளுங்கள், நீங்கள் உடனடி சூப்பர் கிளாஸின் உறுப்பினர்களை மட்டுமே அணுக முடியும்.
‘சூப்பர்’ இரண்டு பொது வடிவங்களைக் கொண்டுள்ளது. முதலாவதாக, இது சூப்பர் கிளாஸின் கட்டமைப்பாளரை அழைக்க பயன்படுகிறது. இரண்டாவது, துணைப்பிரிவின் உறுப்பினரால் மறைக்கப்பட்டுள்ள சூப்பர் கிளாஸின் உறுப்பினரை அணுகுவது.
// கட்டமைப்பாளரை அழைக்கும் முதல் வடிவம். class supper_class {supper_class (வாதம்_ பட்டியல்) {.. super // சூப்பர் வகுப்பை உருவாக்குபவர்}; வகுப்பு துணை_குழாய் supper_class {sub_class (வாதம்_ பட்டியல்) {..} // துணை_குழாய் சூப்பர் (வாதம்_ பட்டியல்) இன் கட்டமைப்பாளர்; // சப் கிளாஸ் சூப்பர் கிளாஸின் கட்டமைப்பாளரை அழைக்கிறது}};
சூப்பர் கிளாஸ் சப்பர்_ கிளாஸின் // வினாடி {int i; } வகுப்பு துணை_குழாய் supper_class ஐ நீட்டிக்கிறது {int i; sub_class (int a, int b) {super.i = a; சூப்பர் வகுப்பின் // நான் = பி; // நான் துணை வகுப்பின்}};
பாலிமார்பிஸத்தின் வரையறை
பாலிமார்பிசம் என்ற சொல்லுக்கு வெறுமனே ‘ஒரு செயல்பாடு, பல வடிவங்கள்’ என்று பொருள். தொகுக்கும் நேரம் மற்றும் இயக்க நேரம் ஆகிய இரண்டிலும் பாலிமார்பிசம் அடையப்படுகிறது. தொகுக்கும் நேர பாலிமார்பிசம் “ஓவர்லோடிங்” மூலமாக அடையப்படுகிறது, அதேசமயம், ரன் டைம் பாலிமார்பிசம் “மீறல்” மூலம் அடையப்படுகிறது.
இரண்டிலும், நேரத்தை தொகுத்து, இயங்கும் நேரத்தை "எந்த வடிவத்தில் செயல்படுத்த வேண்டும்" என்பதை தீர்மானிக்க பாலிமார்பிசம் பொருளை அனுமதிக்கிறது.
அதிக சுமை பற்றிய முதல் கருத்தை விவாதிப்போம். ஓவர்லோடிங்கில், வகுப்பில் ஒரு செயல்பாட்டை வெவ்வேறு, தரவு வகை மற்றும் அளவுருக்களின் எண்ணிக்கையுடன் ஒன்றுக்கு மேற்பட்ட முறை வரையறுக்கிறோம், அதேசமயம் அதிக சுமை செலுத்த வேண்டிய செயல்பாடு ஒரே வருவாய் வகையைக் கொண்டிருக்க வேண்டும். அதிக சுமைகளுக்கு செயல்பாடுகள் பெரும்பாலும் வகுப்பின் கட்டமைப்பாளர்கள்.
வகுப்பு ஓவர்லோட் {int a, b; பொது: int overload (int x) {// முதல் ஓவர்லோட் () கட்டமைப்பாளர் a = x; திரும்ப ஒரு; } int ஓவர்லோட் (int x, int y) second // இரண்டாவது ஓவர்லோட் () கட்டமைப்பாளர் a = x; ஆ = ஒய்; return a * b; }}; int main () {ஓவர்லோட் O1; O1.overload (20); // முதல் ஓவர்லோட் () கட்டமைப்பாளரின் அழைப்பு O1.overload (20,40); // இரண்டாவது சுமை () கட்டமைப்பாளரின் அழைப்பு}
இப்போது, பாலிமார்பிஸத்தின் இரண்டாவது வடிவத்தைப் பற்றி விவாதிக்கலாம், அதாவது மீறல். மேலெழுதலின் கருத்து வகுப்புகளின் செயல்பாட்டிற்கு மட்டுமே செயல்படுத்தப்பட முடியும், அவை பரம்பரை என்ற கருத்தையும் செயல்படுத்துகின்றன. சி ++ இல், மேலெழுதப்பட வேண்டிய செயல்பாடு அடிப்படை வகுப்பில் உள்ள “மெய்நிகர்” என்ற முக்கிய வார்த்தையால் முந்தியுள்ளது மற்றும் பெறப்பட்ட வகுப்பில் “மெய்நிகர்” என்ற முக்கிய சொல்லைத் தவிர அதே முன்மாதிரியுடன் மறுவரையறை செய்யப்படுகிறது.
வகுப்பு அடிப்படை {பொது: மெய்நிகர் வெற்றிட வேடிக்கை () base // அடிப்படை வகுப்பு கவுட்டின் மெய்நிகர் செயல்பாடு << "இது ஒரு அடிப்படை வகுப்புகள் funct ()"; }}; class der1: public base {public: void funct () {// பெறப்பட்ட 1 வகுப்பு cout இல் மறுவரையறை செய்யப்பட்ட அடிப்படை வகுப்பின் மெய்நிகர் செயல்பாடு << "இது ஒரு பெறப்பட்ட 1 வகுப்புகள் funct ()"; }}; int main () {base * p, b; பெறப்பட்ட 1 டி 1; * ப = & ஆ; P-> funct (); // அடிப்படை வகுப்பு வேடிக்கைக்கு அழைப்பு (). * ப = & D1; திரும்ப 0; }
- ஏற்கனவே இருக்கும் வகுப்பிலிருந்து அதன் அம்சத்தைப் பெறும் ஒரு வகுப்பை மரபுரிமை உருவாக்குகிறது. மறுபுறம், பாலிமார்பிசம் என்பது பல வடிவங்களில் வரையறுக்கக்கூடிய ஒரு இடைமுகமாகும்.
- வகுப்புகளில் மரபுரிமை செயல்படுத்தப்படுகிறது, அதேசமயம் பாலிமார்பிசம் முறைகள் / செயல்பாடுகளில் செயல்படுத்தப்படுகிறது.
- பெறப்பட்ட வகுப்பிற்கு அடிப்படை வகுப்பில் வரையறுக்கப்பட்ட கூறுகள் மற்றும் முறைகளைப் பயன்படுத்த பரம்பரை அனுமதிப்பதால், பெறப்பட்ட வர்க்கம் அந்த கூறுகளை வரையறுக்கவோ அல்லது அதை மீண்டும் முறை செய்யவோ தேவையில்லை, எனவே இது குறியீடு மறுபயன்பாட்டை அதிகரிக்கிறது, எனவே குறியீட்டின் நீளத்தைக் குறைக்கிறது . மறுபுறம், ஒரு பொருள் தொகுக்கும் நேரம் மற்றும் இயங்கும் நேரம் ஆகிய இரண்டிலும் எந்த வடிவத்தை செயல்படுத்த விரும்புகிறது என்பதை தீர்மானிக்க ஒரு பொருளை பாலிமார்பிசம் சாத்தியமாக்குகிறது.
- பரம்பரை ஒற்றை பரம்பரை, பல பரம்பரை, பல நிலை பரம்பரை, படிநிலை பரம்பரை மற்றும் கலப்பின பரம்பரை என வகைப்படுத்தலாம். மறுபுறம், பாலிமார்பிசம் ஓவர்லோடிங் மற்றும் ஓவர்ரைடிங் என வகைப்படுத்தப்படுகிறது.
முடிவுரை:
டைனமிக் பாலிமார்பிசம் வகுப்புகளுக்கு பொருந்தும் என்பதால், பரம்பரை மற்றும் பாலிமார்பிசம் ஆகியவை ஒன்றோடொன்று தொடர்புடைய கருத்துக்கள்.