- Understand how polymorphism is enabled by interfaces and inheritance.
- Understand and use interfaces to create more flexible code.
- Explain polymorphism and why it is useful
- Describe what an interface is and how it enables polymorphism
- Explain why it is preferable to use interface types in method declarations ("coding to an interface")
- Explain why an interface cannot be instantiated
- Implement common standard C# interfaces
- Explain what a default method is and how they may be used with interfaces
- Use the appropriate interface for collection types depending on the behavior they must exhibit
- Describe the differences between abstract classes and interfaces
- Use some C# provided interfaces:
IComparer<T>
,IEnumerable<T>
,IList<T>
,IDictionary<TKey, TValue>
- Write unit tests that verify interface-based code