- Reduce repeated code and enhance objects using inheritance.
- Define two classes, one of which inherits from another.
- Define methods in the child class that use the
super
keyword to inherit from and augment methods in the parent class.
- Accomplish complex programming tasks using knowledge from previous modules.
- Inheritance: a tool that allows us to recycle code by creating a class that "inherits" the attributes and methods of a parent class.
- Composition: a tool that enables you to recycle code by adding objects to other objects. Rather than building on a base class as in inheritance, composition leverages the attributes and methods of an instance of another class.
- Subclass: a class that inherits from another class. Colloquially called a "child" class.
- Superclass: a class that is inherited by another class. Colloquially called a "parent" class.
- Child: another name for a subclass.
- Parent: another name for a superclass.
super()
: a built-in Python function that allows us to manipulate the attributes and methods of a superclass from the body of its subclass.- Decorator: syntax that allows us to add functionality to an object without modifying its structure.
In this lab, you'll be coding a Student
class, which will be the superclass,
and a ChattyStudent
class, which will inherit from Student
.
ChattyStudent
is a student, so they should have all of the behaviors and
characteristics of a student. The difference is that ChattyStudent
is very
chatty. So, they will elaborate on any phrases that are inherited from
Student
.
Run the test suite to get started. This is a test-driven lab.
-
Write a method in the
Student
class,hello()
, thatprint()
s out the phrase:"Hey there! I'm so excited to learn stuff."
-
Write a method in the
Student
class,raise_hand()
, thatprint()
s out the phrase:"Pick me!"
-
Write a method in the
ChattyStudent
class,hello()
, that usessuper()
to inherit the behavior of thehello()
method from the parent class. Then, augment that method to alsoprint()
out the very chatty phrase:"How are you doing today? I'm okay, but I'm kind of tired. Did you watch The Walking Dead last night? You didn't?! Oh man, it was so crazy! What, you don't want any spoilers? Okay well let me just tell you who died..."
-
Write a method in the
ChattyStudent
class,raise_hand()
, that usessuper()
ten times so that the method willprint()
out "Pick me!" ten times. It is possible to callsuper()
multiple times in a method.