Sometimes you’ll want one class that inherits from another to not only take on the methods and attributes of its parent, but to override one or more of them.
For instance, you might have an
Message. Both classes might have a
send method that sends them, but the e-mail version may have to identify valid e-mail addresses and use a bunch of e-mail protocols that
Message knows nothing about. Rather than add a
send_email method to your derived class and inherit a
send method you’ll never use, you can instead just explicitly create a
send method in the
This new version of
send will override (that is, replace) the inherited version for any object that is an instance of
Let’s try a more entertaining (if less realistic) example. Create a new class,
Dragon, that inherits from
Creature. Give your derived class a
fight method that overrides
Creature‘s; instead of returning “Punch to the chops!”, it should
return “Breathes fire!”.