Polymorphism in Hindi
/ BCA / Programming with C and CPP
Polymorphism in C Explained with Types and Benefits in Hindi
Polymorphism in Hindi
What is Polymorphism in C in Hindi
Polymorphism एक बहुत ही महत्वपूर्ण और बेसिक Object-Oriented Programming (OOP) की विशेषता है। "Polymorphism" शब्द दो शब्दों से मिलकर बना है - "Poly" का अर्थ है "अनेक" और "Morph" का अर्थ है "रूप"। यानी Polymorphism का मतलब होता है "एक ही नाम के अनेक रूप"। इसे हम ऐसे भी समझ सकते हैं कि एक ही function या operator अलग-अलग परिस्थितियों में अलग-अलग तरीके से behave कर सकता है।
C language पूरी तरह Object-Oriented नहीं है, लेकिन फिर भी हम कुछ हद तक Polymorphism को achieve कर सकते हैं, खासकर Function Pointers, Structures और Function Overloading के concept से (Function Overloading C++ में होता है)। C++ में Polymorphism का proper implementation होता है।
Types of Polymorphism in C in Hindi
Polymorphism मुख्यतः दो प्रकार का होता है:
- Compile Time Polymorphism (Static Polymorphism)
- Run Time Polymorphism (Dynamic Polymorphism)
Compile Time Polymorphism in Hindi
Compile Time Polymorphism को Static Polymorphism भी कहते हैं। इसका मतलब है कि function call किस function definition से जुड़ेगा, यह compile time पर तय हो जाता है। C++ में इसे achieve करने के लिए Function Overloading और Operator Overloading का प्रयोग किया जाता है। C language में Function Overloading का direct support नहीं होता, लेकिन manually अलग-अलग नाम के functions से हम इसी जैसा व्यवहार पा सकते हैं।
Function Overloading Example in C++:
#include <iostream>
using namespace std;
void print(int i) {
cout << "Integer: " << i << endl;
}
void print(double d) {
cout << "Double: " << d << endl;
}
void print(string s) {
cout << "String: " << s << endl;
}
int main() {
print(10); // Integer function call
print(3.14); // Double function call
print("Hello"); // String function call
return 0;
}
ऊपर दिए गए कोड में एक ही नाम print के तीन functions हैं, लेकिन उनके parameters अलग-अलग हैं। compiler अपने आप समझ जाता है कि किस function को call करना है।
Run Time Polymorphism in Hindi
Run Time Polymorphism को Dynamic Polymorphism कहा जाता है। इसका अर्थ है कि कौन सा function run time पर execute होगा, यह program चलने के समय तय होता है। इसे हम inheritance और virtual functions की मदद से प्राप्त करते हैं। यह feature C++ में होता है, लेकिन C में इसे pointers और structures की सहायता से manually किया जा सकता है।
Virtual Function Example in C++:
#include <iostream>
using namespace std;
class Animal {
public:
virtual void sound() {
cout << "Animal sound" << endl;
}
};
class Dog : public Animal {
public:
void sound() override {
cout << "Dog barks" << endl;
}
};
int main() {
Animal* a;
Dog d;
a = &d;
a->sound(); // Run time पर decide होगा कि Dog का function call होगा
return 0;
}
इस example में Animal class का pointer a Dog object को point कर रहा है। जब हम a->sound() call करते हैं, तो program run time पर तय करता है कि Dog का sound() function call होना है। यह Run Time Polymorphism का उदाहरण है।
Polymorphism Using Function Pointer in C
C language में Function Pointers का उपयोग करके हम कुछ हद तक Polymorphism जैसा behavior achieve कर सकते हैं।
Example of Function Pointer in C:
#include <stdio.h>
void add(int a, int b) {
printf("Addition: %d\\n", a + b);
}
void subtract(int a, int b) {
printf("Subtraction: %d\\n", a - b);
}
int main() {
void (*operation)(int, int);
operation = &add;
operation(10, 5); // Addition
operation = &subtract;
operation(10, 5); // Subtraction
return 0;
}
यहां पर operation एक function pointer है, जो दो अलग-अलग functions को call कर सकता है, जिससे यह Polymorphism जैसा व्यवहार करता है।
Benefits of Using Polymorphism in Hindi
Polymorphism के प्रयोग से हम flexible और reusable code बना सकते हैं। इसके कई महत्वपूर्ण लाभ होते हैं:
- Code Reusability: एक ही नाम के function का उपयोग करके हम अलग-अलग डेटा types के साथ काम कर सकते हैं, जिससे बार-बार नया function लिखने की ज़रूरत नहीं होती।
- Readability: Polymorphism से code ज़्यादा readable और आसान बनता है, जिससे इसे समझना और debug करना सरल हो जाता है।
- Extensibility: अगर हमें भविष्य में नए प्रकार के objects या operations जोड़ने हैं, तो Polymorphism की मदद से हम आसानी से नए functions implement कर सकते हैं।
- Runtime Flexibility: Run Time Polymorphism से program run होते समय behavior बदल सकता है, जिससे अधिक dynamic और responsive program बनाया जा सकता है।
- Maintainability: एक ही logic को reuse करने से code छोटा होता है, जिससे उसे maintain करना आसान हो जाता है।
Difference Between Compile Time and Run Time Polymorphism
| Aspect | Compile Time Polymorphism | Run Time Polymorphism |
|---|---|---|
| Identification | Compile Time पर तय होता है | Run Time पर तय होता है |
| Achieved by | Function Overloading, Operator Overloading | Virtual Functions, Function Pointers |
| Speed | तेज़ (Fast) | धीमा (Slow) |
| Flexibility | कम | अधिक |
| Use | Simple Programs में | Complex Systems में |
Summary in Simple Terms
- Polymorphism एक ही नाम के functions का अलग-अलग व्यवहार है।
- Compile Time Polymorphism compile होते समय तय होता है, और यह तेज़ होता है।
- Run Time Polymorphism रन टाइम पर तय होता है और अधिक flexible होता है।
- C language में direct Polymorphism नहीं है लेकिन function pointers से achieve किया जा सकता है।
- Polymorphism से code साफ, छोटा, reusable और maintainable बनता है।