Shadowing is concept to hide functionality provided by base class member. We can also change return type of member also. In overriding we can only change definition but in shadowing we can change return type also
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Shadowing
{
class Program
{
static void Main(string[] args)
{
ChildClass obj = new ChildClass();
obj.GetInvoice();
Console.ReadLine();
}
}
public class BaseClass {
public int InvoiceNumber = 10;
public virtual void GetInvoice()
{
Console.WriteLine("This is Base Class Data");
}
}
public class ChildClass:BaseClass
{
public new string InvoiceNumber = "10";
public new string GetInvoice()
{
Console.WriteLine("This is Child Class Data");
return string.Empty;
}
}
}
Markdown for AI
A clean, structured version of this page for AI assistants and LLMs.
We use cookies to ensure you have the best browsing experience on our website. By using our site, you
acknowledge that you have read and understood our
Cookie Policy &
Privacy Policy.
Shadowing is concept to hide functionality provided by base class member. We can also change return type of member also. In overriding we can only change definition but in shadowing we can change return type also
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Shadowing
{
class Program
{
static void Main(string[] args)
{
ChildClass obj = new ChildClass();
obj.GetInvoice();
Console.ReadLine();
}
}
public class BaseClass {
public int InvoiceNumber = 10;
public virtual void GetInvoice()
{
Console.WriteLine("This is Base Class Data");
}
}
public class ChildClass:BaseClass
{
public new string InvoiceNumber = "10";
public new string GetInvoice()
{
Console.WriteLine("This is Child Class Data");
return string.Empty;
}
}
}