मैंने सीखा है कि वर्चुअल विधियों का उपयोग किसी विधि/फ़ंक्शन के लिए डिफ़ॉल्ट व्यवहार प्रदान करता है। मेरी क्वेरी यह है कि, जब हम व्युत्पन्न वर्ग में "नया" का उपयोग करके उसी नाम (बेस क्लास में) के तरीके को कार्यान्वित कर सकते हैं और इसे अलग-अलग ऑब्जेक्ट्स द्वारा कॉल कर सकते हैं तो वर्चुअल विधि का उपयोग क्या होता है। उदाहरण के लिए;आभासी विधि का उपयोग कर केवल एक उदाहरण पीढ़ी का लाभ है?
class A
{
public void F()
{
//default behavior
}
public virtual void G()
{
//default behavior
}
}
class B:A
{
new public void F()
{
//new behavior from that of class A
}
public override void G()
{
//new behavior from that of class A
}
}
class Test
{
public static void Main(string[] args)
{
//For calling A's method use same compile time and run time object
A obj1 = new A();
//For calling B's method use compile time object of A and run time of B
A obj2 = new B();
obj1.F(); //O/P is A's method result
obj2.F(); //O/P is A's method result
obj1.G(); //O/P is A's method result
obj2.G(); //O/P is B's method result
}
मेरा प्रश्न क्यों आभासी जी() वर्ग एक में जब हम एक ही संकलन समय वस्तु का उपयोग करके रूप में अच्छी तरह डिफ़ॉल्ट व्यवहार प्रदान कर सकते हैं व्युत्पन्न व्यवहार के रूप में और इस तरह के रूप में दोनों वर्गों एक के समय वस्तु और बी चलाने जरूरत है:
A obj1 = new A(); //for calling A's methods
B obj2 = new B(); //for calling B's methods
A obj3 = new B(); //for having default behavior of class A using B's run time object.
जो मैंने प्राप्त किया वह केवल आभासी के मामले में हमें एक ही संकलन और समय के प्रकार को चलाने की आवश्यकता नहीं है। यह एक ऑब्जेक्ट द्वारा प्राप्त किया जा सकता है जो टाइप ए के संकलन समय और बी बी
शायद मेरा दिमाग उत्तर से नहीं सुलझाया गया है ... मैं इसे स्पष्ट रूप से प्राप्त नहीं कर पा रहा हूं। क्या आप इसे अधिक यथार्थवादी स्पर्श दे सकते हैं और तत्काल उत्तर के लिए हाँ धन्यवाद। – user1740176
मुझे डर है कि मुझे नहीं पता कि "अधिक यथार्थवादी स्पर्श" से आपका क्या मतलब है। –
अच्छा खेद है कि स्पष्ट नहीं होना चाहिए। मैं यह पूछने की कोशिश कर रहा था: क्या वर्चुअल विधि का उपयोग केवल स्मृति को बचाता है? तो अधिक वस्तुओं को बनाने के लिए या इसके अलग-अलग कारण भी हैं? यथार्थवादी स्पर्श से मेरा मतलब था कि कोई वास्तविक जीवन उदाहरण। – user1740176