Figure 6.2 Animal Kingdom in C++
class Animal {public: virtual void speak() = 0;
class Bird : public Animal {public: virtual void speak() { printf("twitter"); }
class Mammal : public Animal {public: virtual void speak() { printf("can't speak"); } void bark() { printf("can't bark"); }
class Cat : public Mammal {public: void speak() { printf("meow"); } virtual void purr() { printf("purrrrr"); }
class Dog : public Mammal {public: virtual void speak() { printf("wouf"); } void bark() { printf("wouf"); }