Перегрузка и переопределение это вроде как разные понятия, но используются вперемешку, и я не совсем понимаю разницу между ними. Можете пожалуйста доступно объяснить разницу между этими понятиями?
Перегрузка - это использование методов с одиаковым именем и с разной сигнатурой в одном классе, но с одной реализацией. При этом метод становится универсальным, т.к. благодаря расширенной сигнатуре он автоматически может использоваться в разных контекстах, и это удобно.
Переопределение - это понятие, которое относится к теме о виртуальных и абстрактных методах. Переопределением называют возможность заменить реализацию метода в базовом классе классом-наследником.
Ключевое слово переопределения в языке C# это override. Так же иногда используется техника сокрытия метода с помощью ключевого слова new.
Техника сокрытия:
class A { public void Method() { Console.WriteLine("Hello world!"); } }class B : A { public new void Method() { Console.WriteLine("Hello World!!!"); } }</strong></pre>
Переопределение:
abstract class A { public abstract void Method(); };class B : A { public override void Method() { Console.WriteLine("Hello World!!!"); } }</strong></pre>