अपकास्टिंग और डाउनकास्टिंग:
Upcasting: Derived-Class से Base Class डाउनकास्टिंग तक कास्टिंग: Base Class से Derived Class तक कास्टिंग
आइए इसे एक उदाहरण के रूप में समझते हैं:
दो वर्गों के आकार को मेरा मूल वर्ग मानें और एक व्युत्पन्न वर्ग के रूप में सर्किल, निम्नानुसार परिभाषित किया गया है:
class Shape
{
public int Width { get; set; }
public int Height { get; set; }
}
class Circle : Shape
{
public int Radius { get; set; }
public bool FillColor { get; set; }
}
upcasting:
आकार s = नया आकार ();
वृत्त c = s;
दोनों c और s एक ही मेमोरी लोकेशन को संदर्भित कर रहे हैं, लेकिन दोनों के अलग-अलग विचार हैं, अर्थात "c" संदर्भ का उपयोग करके आप बेस क्लास और व्युत्पन्न वर्ग के सभी गुणों का उपयोग कर सकते हैं, लेकिन "s" संदर्भ का उपयोग करके आप गुणों तक पहुँच सकते हैं एकमात्र अभिभावक वर्ग का।
अपकास्टिंग का एक व्यावहारिक उदाहरण स्ट्रीम क्लास है जो कि सभी प्रकार के स्ट्रीम रीडर की मूल रूपरेखा है। नेट फ्रेमवर्क:
स्ट्रीमराइडर रीडर = नया स्ट्रीमराइडर (नया फाइलस्ट्रीमरडर ());
यहाँ, FileStreamReader () स्ट्रेडम रेडर के लिए अपस्टेड है।
downcasting:
आकार एस = नया सर्कल (); जैसा कि ऊपर बताया गया है, s का दृश्य एकमात्र माता-पिता है, इसे माता-पिता और बच्चे दोनों के लिए बनाने के लिए हमें इसे नीचे करना होगा
var c = (Circle) s;
डाउनकास्टिंग का व्यावहारिक उदाहरण WPF का बटन वर्ग है।
Employee emp= mgr;
पर्याप्त होना चाहिए।