Python Jumpstart by Building 10 Apps Transcripts
Chapter: App 7: Wizard Battle App
Lecture: Concept: Inheritance
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Inheritance is a core concept
0:02
of all object oriented programming
0:04
and it's exactly the tool that we need,
0:06
to help us build these special types of creatures in our game,
0:10
dragons, small animals and so on.
0:13
The way it works is you declare what is called a base type,
0:16
in our case this is the creature and it has all the common functionality.
0:20
But we can add specialization to it,
0:22
we can add some other type that is like a creature
0:26
but has additional pieces of information, or behaviors,
0:29
so here we have a dragon and the way we declare its base type,
0:32
the thing that it gets its common behaviors from
0:35
is we say "(" and the class name, ")".
0:39
So dragon is a creature but dragons also have special behaviors and data
0:44
so this dragon can bread fire, you can see there is breed fire method,
0:48
creatures can do that, it's adding that to its specialization,
0:51
and it also has a different set of data,
0:53
it has a scale thickness in addition to the name and level.
0:57
Now, notice this call to super, we say super.init,
1:00
that's the initializer for the creature class,
1:02
and we have to pass the name and the level onto this base class,
1:05
we technically could ignore this step
1:08
and then just store the name and level as well,
1:11
but you often find you would be duplicating code
1:14
and introducing various bugs by omission and so on, if you do that.
1:20
Here we are actually letting the creature class
1:22
deal with storing and processing the name and level
1:25
and whatever that means and however that evolves over time,
1:27
and we are only doing the extra stuff in the dragon,
1:29
like storing the scale thickness and so on,
1:31
so let's go back and apply this concept of inheritance
1:34
to our wizard game.