Если вы хотите реализовать переопределение метода, используйте ключевое слово virtual
в базовом классе и ключевое слово override
в производном классе.
namespace ConsoleApp1
{
public class TextInput
{
protected string _text = "";
//Virtual allows derived class to enhance its functionality.
public virtual void Add(char c)
{
_text += c;
}
....
}
public class NumericInput : TextInput
{
//Override function will add more functionality to base class function
public override void Add(char c)
{
if (!char.IsDigit(c)) return;
_text += c;
}
}
Теперь ключевое слово new
не переопределяет функцию базового класса, оно скрывает функциональность базового класса.
Если вы хотите переопределить функцию в производном классе, тогда используйте override
вместо new
ключевое слово
Для получения дополнительной информации посетите: Поток Stackoverflow