chapter9 all the up to creating an abstract class
the other half of chapter 9