Перегрузка или переопределение?

Перегрузка и переопределение это вроде как разные понятия, но используются вперемешку, и я не совсем понимаю разницу между ними. Можете пожалуйста доступно объяснить разницу между этими понятиями?

Перегрузка - это использование методов с одиаковым именем и с разной сигнатурой в одном классе, но с одной реализацией. При этом метод становится универсальным, т.к. благодаря расширенной сигнатуре он автоматически может использоваться в разных контекстах, и это удобно.

Переопределение - это понятие, которое относится к теме о виртуальных и абстрактных методах. Переопределением называют возможность заменить реализацию метода в базовом классе классом-наследником.

Ключевое слово переопределения в языке 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>