The second technique I'd like to discuss deals with handling class-level data in inheritance hierarchies.
I'm going to go over three different approaches to this, which I'm going to refer to as the class variable approach, the delegating approach, and the copying approach.