You are C# developer who is developing a Windows application. You need to provide derived classes the ability to share common functionality with base classes but still define their own unique behavior. Which object-oriented programming concept should you use to accomplish this functionality?
A. encapsulation
B. abstraction
C. polymorphism
D. inheritance
C. polymorphism