dcox ch07 exercises

@alexdeas as well as being self-referential, it's also wrong - you're welcome to define a class as `abstract` with no abstract methods. It just stops the class being instantiable.