To print labels for your CD collection, you might design a one-size-fits-all label that would work for any CD, but then design labels for specific genres that printed extra information more appropriate to those genres.
$cd = CD::Music->new(...); $cdc = CD::Music::Classical->new(...); $cdj = CD::Music::Jazz->new(...);
$cd->print_label(); # would work for any CD $cdc->print_label(); # would work for classical CDs $cdj->print_label(); # would work for jazz CDs
Inheritance polymorphism requires that objects provide a specific method and that they belong to classes in a common hierarchy.
We re-use the interface and we re-use the code in $cd->print_label()
if our invoking class does not define its own print_label()
method.
Previous | Back to start of show | Next |
Slide: 42 inheritance_polymorphism | © 2003 James E. Keenan |