Работаете с наследованием в C#? Тогда вы обязаны понимать, как работают
virtual, override, new и overload. Разложим по полочкам:virtual — можно переопределитьМетод можно переопределить в классе-наследнике. Без него — нельзя.
class Animal {
public virtual void Speak() {
Console.WriteLine("Animal speaks");
}
}override — переопределение родительского метода.class Dog : Animal {
public override void Speak() {
Console.WriteLine("Woof");
}
}new — перетирание метода базового классаЭто не переопределение, а маскировка: новый метод с тем же именем.
class Cat : Animal {
public new void Speak() {
Console.WriteLine("Meow");
}
}overload — перегрузка методаМетод с таким же именем, но разными параметрами. Никак не связан с наследованием.
class Printer {
public void Print(string text) { ... }
public void Print(int number) { ... } // overload
}🐸Библиотека шарписта #буст