Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Understanding Why Multiple Inheritance Exists in Python
📖 Scenario: Imagine you are building a simple program to model different types of vehicles. Some vehicles can fly, some can float on water, and some can do both. To represent these abilities, you will use Python classes.
🎯 Goal: You will create classes to represent flying and floating abilities, then create a new class that inherits both abilities using multiple inheritance. This will help you understand why multiple inheritance exists and how it can be useful.
📋 What You'll Learn
Create a class called Flyer with a method fly() that prints 'Flying high!'
Create a class called Floater with a method float() that prints 'Floating on water!'
Create a class called FlyingBoat that inherits from both Flyer and Floater
Create an object of FlyingBoat and call both fly() and float() methods
Print the outputs of both methods
💡 Why This Matters
🌍 Real World
In real life, many objects or roles combine multiple abilities. For example, a smartphone can make calls, take pictures, and play music. Multiple inheritance helps model such combined abilities in programming.
💼 Career
Understanding multiple inheritance is important for software developers to design flexible and reusable code, especially when working with complex systems that combine different features.
Progress0 / 4 steps
1
Create the Flyer class
Create a class called Flyer with a method fly() that prints the text 'Flying high!'
Python
Hint
Use the class keyword to create a class and define a method inside it.
2
Create the Floater class
Create a class called Floater with a method float() that prints the text 'Floating on water!'
Python
Hint
Define another class similar to Flyer but with a different method.
3
Create the FlyingBoat class using multiple inheritance
Create a class called FlyingBoat that inherits from both Flyer and Floater
Python
Hint
Use parentheses to list both parent classes when defining FlyingBoat.
4
Create an object and call both methods
Create an object called fb of class FlyingBoat. Then call fb.fly() and fb.float() to print both messages.
Python
Hint
Create an object and call both methods to see how multiple inheritance allows access to both.
Practice
(1/5)
1. Why does Python support multiple inheritance?
easy
A. To allow a class to inherit features from more than one parent class
B. To make code run faster
C. To prevent any class from having methods
D. To force all classes to have the same methods
Solution
Step 1: Understand inheritance basics
Inheritance lets a class use methods and properties from a parent class.
Step 2: Recognize multiple inheritance purpose
Multiple inheritance allows a class to get features from more than one parent, combining abilities without rewriting code.
Final Answer:
To allow a class to inherit features from more than one parent class -> Option A
Quick Check:
Multiple inheritance = inherit from multiple parents [OK]
Hint: Multiple inheritance means many parents, many features [OK]
Common Mistakes:
Thinking it makes code faster
Believing it removes methods
Assuming all classes become identical
2. Which of the following is the correct syntax to define a class Child that inherits from two parent classes Parent1 and Parent2?
easy
A. class Child : Parent1, Parent2
B. class Child inherits Parent1, Parent2:
C. class Child -> Parent1, Parent2:
D. class Child(Parent1, Parent2):
Solution
Step 1: Recall Python class inheritance syntax
In Python, parent classes are listed inside parentheses after the class name.
Step 2: Identify correct syntax for multiple inheritance
Multiple parents are separated by commas inside the parentheses.
Final Answer:
class Child(Parent1, Parent2): -> Option D
Quick Check:
Parents in parentheses, comma separated [OK]
Hint: Use parentheses with commas for multiple parents [OK]
Common Mistakes:
Using 'inherits' keyword (not Python syntax)
Using colon instead of parentheses
Using arrow '->' which is invalid
3. What will be the output of this code?
class A:
def greet(self):
return 'Hello from A'
class B:
def greet(self):
return 'Hello from B'
class C(A, B):
pass
obj = C()
print(obj.greet())
medium
A. Hello from A
B. Error: Method greet not found
C. Hello from C
D. Hello from B
Solution
Step 1: Understand method resolution order (MRO)
Python looks for methods in the order of parent classes listed. Here, C inherits from A first, then B.
Step 2: Determine which greet method is called
Since A is first, C uses A's greet method, returning 'Hello from A'.
Final Answer:
Hello from A -> Option A
Quick Check:
MRO uses first parent method [OK]
Hint: First parent class method is used in conflicts [OK]
Common Mistakes:
Choosing method from second parent
Expecting child's own method when none defined
Thinking it causes error
4. Find the error in this code that tries to use multiple inheritance:
class X:
def method(self):
return 'X'
class Y:
def method(self):
return 'Y'
class Z(X Y):
pass
medium
A. Method names must be different in multiple inheritance
B. Missing comma between parent classes in class Z definition
C. Classes cannot have methods with the same name
D. class Z should inherit only one class
Solution
Step 1: Check class Z syntax
Parent classes must be separated by commas inside parentheses.
Step 2: Identify missing comma
Code has 'class Z(X Y):' missing comma between X and Y.
Final Answer:
Missing comma between parent classes in class Z definition -> Option B
Quick Check:
Parents separated by commas [OK]
Hint: Separate parent classes with commas [OK]
Common Mistakes:
Thinking method names must differ
Believing multiple methods cause error
Assuming only one parent allowed
5. You want to create a class SmartPhone that has features from both Camera and Phone classes. Which is the best reason to use multiple inheritance here?
hard
A. To make the phone run faster
B. To avoid creating any methods in SmartPhone
C. To combine camera and phone features without rewriting their code
D. To force Camera and Phone to share the same methods
Solution
Step 1: Understand the goal of SmartPhone class
SmartPhone needs to have both camera and phone abilities.
Step 2: Recognize multiple inheritance benefit
Using multiple inheritance lets SmartPhone reuse code from Camera and Phone classes without rewriting.
Final Answer:
To combine camera and phone features without rewriting their code -> Option C
Quick Check:
Multiple inheritance = reuse multiple parents' features [OK]
Hint: Use multiple inheritance to reuse code from many classes [OK]