Inheritance is a common Object Oriented Programming (OOP) concept
that can be both well used and overused in application development. In
combination with Generics, a new feature in .NET 2.0 that supports strong
typing, using both inheritance and generics, can be a powerful combination
helping to reduce the total amount of coding effort you do in application
development.