Sobes.tech
Back to questions
Junior — Middle
73

Какие отличия между абстрактными методами и стандартными методами в классах?

Answer from AI

sobes.tech AI

Абстрактные методы в C# — это методы, объявленные в абстрактном классе с ключевым словом abstract и не имеющие реализации. Они служат для того, чтобы обязать производные классы реализовать эти методы.

Стандартные методы — это методы с реализацией, которые могут быть вызваны напрямую или переопределены в наследниках.

Основные отличия:

  • Абстрактный метод не имеет тела и требует обязательной реализации в подклассах.
  • Стандартный метод имеет реализацию и может быть использован как есть или переопределён.

Пример:

abstract class Animal
{
    public abstract void MakeSound(); // Абстрактный метод

    public void Sleep() // Стандартный метод
    {
        Console.WriteLine("Sleeping...");
    }
}

class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Bark");
    }
}

В этом примере MakeSound обязателен для реализации в Dog, а Sleep можно использовать без изменений.