I have a code
using System;
namespace ExploreOOP
{
class Program
{
static void Main(string[] args)
{
Base1 b1 = new Derived1();
Derived1 d1 = new Derived1();
b1.write();
d1.write();
Console.WriteLine();
Console.WriteLine();
Base2 b2 = new Derived2();
Derived2 d2 = new Derived2();
b2.write();
d2.write();
Console.WriteLine();
Console.WriteLine();
Base3 b3 = new Derived3();
Derived3 d3 = new Derived3();
b3.write();
d3.write();
Console.ReadKey();
}
}
public class Base1
{
public void write()
{
Console.WriteLine("Inside Base1 class");
}
}
public class Derived1 : Base1
{
public void write()
{
Console.WriteLine("Inside Derived1 class");
}
}
public class Base2
{
public virtual void write()
{
Console.WriteLine("Inside Base2 class");
}
}
public class Derived2 : Base2
{
public override void write()
{
Console.WriteLine("Inside Derived2 class");
}
}
public class Base3
{
public void write()
{
Console.WriteLine("Inside Base3 class");
}
}
public class Derived3 : Base3
{
new public void write()
{
Console.WriteLine("Inside Derived3 class");
}
}
}
and it outputs,
Inside Base1 class
Inside Derived1 class
Inside Derived2 class
Inside Derived2 class
Inside Base3 class
Inside Derived3 class
So my question is,
public class Base1
{
public void write()
{
Console.WriteLine("Inside Base1 class");
}
}
public class Derived1 : Base1
{
public void write()
{
Console.WriteLine("Inside Derived1 class");
}
}
and
public class Base3
{
public void write()
{
Console.WriteLine("Inside Base3 class");
}
}
public class Derived3 : Base3
{
new public void write()
{
Console.WriteLine("Inside Derived3 class");
}
}
does the same thing?