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 Email
class that inherits from 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 Email
class and have it do all the email-sending work.
This new version of send
will override (that is, replace) the inherited version for any object that is an instance of Email
.
Instructions
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!”.