Junior OOP

What is duck typing and does C# support it with interfaces?

  • Duck typing: "If it looks like a duck and quacks like a duck, it is a duck."
  • Behavior is based on method/property availability, not type inheritance.
  • C# does not support full dynamic duck typing, but interfaces enable a similar

concept by relying on contract-based behavior.

  • Dynamic types in C# (dynamic) can also simulate duck typing.

interface IFlyable { void Fly(); }

void MakeItFly(IFlyable obj) => obj.Fly(); // Any object

implementing IFlyable works

More from C# Programming Tutorial

All questions for this course