c# - small misunderstanding of example in msdn related to virtual/override -


while reading about polymorphism in msdn, saw example of virtual , overridden methods:

public class baseclass {     public virtual void dowork() { }     public virtual int workproperty     {         { return 0; }     } } public class derivedclass : baseclass {     public override void dowork() { }     public override int workproperty     {         { return 0; }     } }  derivedclass b = new derivedclass(); b.dowork();  // calls new method.  baseclass = (baseclass)b; a.dowork();  // calls new method. 

what want know is, in scenario should this? can't see how useful in way. please give real-world example?

this useful whenever want reference objects, , can't keep references of exact type. if example have list of objects of mixed types:

list<baseclass> list = new list<baseclass>() {   new baseclass(),   new derivedclass(),   new baseclass(),   new baseclass(),   new derivedclass(),   new derivedclass() }; 

now have list of baseclass references, of them point derivedclass instances.

when want use them, don't need check type. can call virtual dowork method, , baseclass.dowork method called baseclass instanced , derivedclass.dowork method called derivedclass instances:

foreach (baseclass b in list) {   b.dowork(); } 

Comments

Popular posts from this blog

javascript - how to protect a flash video from refresh? -

android - Associate same looper with different threads -

visual studio 2010 - Connect to informix database windows form application -