June 12, 2007
Hi Guys
In the below program I can agree that “D MyD = new D();” here the type D and constructor D both are same, as usual. But I couldn’t understand why “B MyB = new D();” here type B and constructor D are not same, that means letter B and letter D are not same. This is unusual.
Please anybody explain why both are different. Website address is given.
Thank you
//http://www.java2s.com/Code/CSharp/Language-Basics/Inheritance3.htm
using System;
namespace Client.Chapter_5___Building_Your_Own_Classes
{
public class InheritanceChapter_5___Building_Your_Own_Classes
{
static void Main(string[] args)
{
B MyB = new D();
D MyD = new D();
//Both result in in D's instance of Display being //called
MyB.Display();
MyD.Display();
}
}
public class B
{
public virtual void Display()
{
Console.WriteLine("Class B's Display Method");
}
}
public class C: B
{
public override void Display()
{
Console.WriteLine("Class C's Display Method");
}
}
public class ContainedClass
{
int MyInt = 0;
}
public class D: C
{
public ContainedClass MyClass = new ContainedClass();
public override void Display()
{
Console.WriteLine("Class D's Display Method");
}
}
}
/*
Class D's Display Method
Class D's Display Method
Press any key to continue
*/