Полиморфизм в C# позволяет работать с объектами разных типов через единый интерфейс, так что один и тот же вызов метода может вести себя по-разному в зависимости от типа объекта.
C# поддерживает полиморфизм двумя основными механизмами:
virtual в базовом классе, чтобы отметить метод как переопределяемыйoverride в производных классах, чтобы предоставить новую реализациюПример:
public class Animal
{
public virtual void Speak() { }
}
public class Dog : Animal
{
public override void Speak() { Console.WriteLine("Woof"); }
}
interface, содержащего сигнатуры методовПример:
public interface IAnimal
{
void Speak();
}
public class Cat : IAnimal
{
public void Speak() { Console.WriteLine("Meow"); }
}
Разница между интерфейсами и виртуальными методами: интерфейсы определяют что должен делать класс, а виртуальные методы определяют как это делать — с реализацией по умолчанию, которую можно переопределить.
В C#, ключевое слово virtual в объявлении метода базового класса обеспечивает полиморфизм времени выполнения, позволяя производным классам переопределять метод со своей реализацией, используя ключевое слово override.
Новый — ещё не проверен сообществом
Вы