Inheritance and Polymorphism
Method Overriding
A derived class can override a virtual method from its base class.
Method Overriding
MethodOverriding.cs
using System;
class Notifier
{
public virtual string Message()
{
return "notice";
}
}
class EmailNotifier : Notifier
{
private readonly string subject;
public EmailNotifier(string subject)
{
this.subject = subject;
}
public override string Message()
{
return "email:" + subject;
}
}
class Program
{
static void Main()
{
string subject = ;
EmailNotifier notifier = new EmailNotifier(subject);
string message = notifier.Message();
Console.WriteLine($"subject={subject}");
Console.WriteLine($"message={message}");
}
}
using System;
class Notifier
{
public virtual string Message()
{
return "notice";
}
}
class EmailNotifier : Notifier
{
private readonly string subject;
public EmailNotifier(string subject)
{
this.subject = subject;
}
public override string Message()
{
return "email:" + subject;
}
}
class Program
{
static void Main()
{
string subject = ;
EmailNotifier notifier = new EmailNotifier(subject);
string message = notifier.Message();
Console.WriteLine($"subject={subject}");
Console.WriteLine($"message={message}");
}
}
using System;
class Notifier
{
public virtual string Message()
{
return "notice";
}
}
class EmailNotifier : Notifier
{
private readonly string subject;
public EmailNotifier(string subject)
{
this.subject = subject;
}
public override string Message()
{
return "email:" + subject;
}
}
class Program
{
static void Main()
{
string subject = ;
EmailNotifier notifier = new EmailNotifier(subject);
string message = notifier.Message();
Console.WriteLine($"subject={subject}");
Console.WriteLine($"message={message}");
}
}
override
An override replaces virtual base behavior for a derived class.