Refactored so Animal class is an Abstract Data Type
Removed reference to Animal::talk() function