In this chapter, you'll learn upcasting and downcasting and then how to implement a generic interface and how exactly that helps us.
Imagine that you have a list of objects, which you have made of your own type, and you want to sort them. You'll need to figure out just how you can sort these objects. This comes from implementing IComparable, a generic interface that can act on different data types.