Hi everyone!
I'm currently a novice in C# programming....
I have a question: why do we need the virtual methods???
Please correct me if I'm wrong:
Virtual methods are the methods to be overriden in the derived classes.. Due to virtual methods base classes (base part of a derived class) can have access to the derived class overriden methods and fields.. Like in this example...
public class Base
{
virtual public void Go()
{
Console.WriteLine("Base class");
}
}
public class Derived : Base
{
public override void Go()
{
Console.WriteLine("Derived Class");
}
}
static void Main(string[] args)
{
Derived der = new Derived();
((Base)der).Go();
}
So when I call the base virtual method it looks for the most derived override methiod in the derived classes and then returns the result to the base class method, thus changing the full implementation of it........
Does a compiler use any table (virtual tables of invocations)??
How to understand all that???
And one more example ....
when I create a button control on a form so I create
a Button class object ... this object has inherited overriden properties like Text, Name and etc...
So when I assign... button1.Text = "Run button";
so the override property sets its Text as "Run button" and then it
sends this overriden property "up in the class hierarchy" to the base classes ...to meet the ( virtual public string Text ) property
.....so what???? it changed the base class memeber, but I use the derived class member.....
Is it more effective to hide this property ....(by creating a field in derived class) ...I think it would be much effective, cause it can't be overriden and doesn't send any new implementation to the base classes??
Please explain.....