Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialSuwijuk Nawaphanarat
2,103 PointsI need help for someone to explain what is Subclass
I keep forgetting what is Subclass every single time when the question asked me to create a new Subclass. Where is this Subclass in a Class function? I appreciate your help. Thanks!
class Board:
def __init__(self, width, height):
self.width = width
self.height = height
self.cells = []
for y in range(self.height):
for x in range(self.width):
self.cells.append((x, y))
2 Answers
Mark Filter
32,718 PointsIn a more theoretical explanation, a SUB-CLASS, aka CHILD-CLASS, aka DERIVED-CLASS is a class that is a copy of a previously defined class, but with the intention of customizing it for a more specific purpose. The changes could be subtle or substantial. For instance, you could be building a banking application. You would probably have at least two different types of banking accounts in this application: (1) Checking and (2) Savings. Both account types have similar qualities, but have some differences as well. You could create a SUPER-CLASS, aka PARENT-CLASS, that would ENCAPSULATE (or contain) the similarities and then create SUB-CLASSES to handle the peculiarities of each specific account type. It would look something like this:
- Account: ABSTRACT PARENT CLASS - has account number, balance, methods for withdrawal & deposit, etc.
- CHECKING ACCOUNT - (has all the above, plus...), does not earn interest
- SAVINGS ACCOUNT - (has the same as Account Class, plus...) does earn interest
Jon Mirow
9,864 PointsHi there!
I believe we're talking about an inherited class, or child class. So a subclass wouldn't be inside the Board class you have there, but a class that inherits from it:
class Plank(Board):
"""
A narrow type of board
"""
def __init__(self):
super().__init__(2, 4)
Hope it helps :)
Suwijuk Nawaphanarat
2,103 PointsOh, I see. Thanks, Jon!