Inheritance is one of the most important concepts in Object-Oriented Programming (OOP). It allows a class to inherit properties and methods from another class, promoting code reuse and making programs easier to maintain.
In Python, inheritance helps create relationships between classes where one class can use the functionality of another class without rewriting code.
In this tutorial, you will learn everything about Python inheritance with practical examples.
What is Inheritance?
Inheritance is a mechanism where one class acquires the attributes and methods of another class.
The class being inherited from is called the:
- Parent Class
- Base Class
- Super Class
The class that inherits is called the:
- Child Class
- Derived Class
- Sub Class
Why Use Inheritance?
Inheritance provides several advantages:
- Code reusability
- Reduced code duplication
- Easier maintenance
- Better organization
- Supports hierarchical relationships
Basic Inheritance Syntax
class Parent:
pass
class Child(Parent):
passThe child class automatically inherits all accessible members of the parent class.
Simple Inheritance Example
Parent Class
class Animal:
def speak(self):
print("Animal makes a sound")Child Class
class Dog(Animal):
pass
dog = Dog()
dog.speak()Output
Animal makes a soundThe Dog class inherited the speak() method from Animal.
Inheriting Attributes
Child classes inherit variables as well.
Example
class Person:
def __init__(self):
self.name = "John"
class Student(Person):
pass
student = Student()
print(student.name)Output
JohnChild Class with Additional Methods
A child class can add its own methods.
Example
class Animal:
def speak(self):
print("Animal Sound")
class Dog(Animal):
def bark(self):
print("Bark Bark")
dog = Dog()
dog.speak()
dog.bark()Output
Animal Sound
Bark BarkUsing Constructors in Inheritance
Child classes can inherit constructors from parent classes.
Example
class Person:
def __init__(self, name):
self.name = name
class Student(Person):
pass
student = Student("Alice")
print(student.name)Output
AliceOverriding Constructors
Child classes can define their own constructor.
Example
class Person:
def __init__(self, name):
self.name = name
class Student(Person):
def __init__(self, name, grade):
self.name = name
self.grade = grade
student = Student("John", "A")
print(student.name)
print(student.grade)The super() Function
The super() function allows a child class to call methods from the parent class.
Example
class Person:
def __init__(self, name):
self.name = name
class Student(Person):
def __init__(self, name, grade):
super().__init__(name)
self.grade = grade
student = Student("John", "A")
print(student.name)
print(student.grade)Output
John
AMethod Overriding
A child class can replace a parent class method.
Example
class Animal:
def speak(self):
print("Animal Sound")
class Dog(Animal):
def speak(self):
print("Bark")
dog = Dog()
dog.speak()Output
BarkTypes of Inheritance in Python
Python supports multiple inheritance types.
1. Single Inheritance
One child inherits from one parent.
class Parent:
pass
class Child(Parent):
passDiagram
Parent
|
Child2. Multiple Inheritance
A child inherits from multiple parent classes.
Example
class Father:
def skill1(self):
print("Driving")
class Mother:
def skill2(self):
print("Cooking")
class Child(Father, Mother):
pass
c = Child()
c.skill1()
c.skill2()3. Multilevel Inheritance
Inheritance across multiple levels.
Example
class GrandParent:
pass
class Parent(GrandParent):
pass
class Child(Parent):
passDiagram
GrandParent
|
Parent
|
Child4. Hierarchical Inheritance
Multiple child classes inherit from one parent.
Example
class Animal:
pass
class Dog(Animal):
pass
class Cat(Animal):
passDiagram
Animal
/ \
Dog Cat5. Hybrid Inheritance
Combination of multiple inheritance types.
Example
class A:
pass
class B(A):
pass
class C(A):
pass
class D(B, C):
passReal-World Example: Employee System
class Employee:
def __init__(self, name):
self.name = name
def work(self):
print("Employee Working")
class Manager(Employee):
def manage(self):
print("Managing Team")
manager = Manager("Alice")
manager.work()
manager.manage()Real-World Example: Vehicle System
class Vehicle:
def start(self):
print("Vehicle Started")
class Car(Vehicle):
def drive(self):
print("Car Driving")
car = Car()
car.start()
car.drive()Checking Inheritance
Use issubclass() to check inheritance.
Example
class Animal:
pass
class Dog(Animal):
pass
print(issubclass(Dog, Animal))Output
TrueChecking Object Type
Use isinstance().
Example
class Animal:
pass
class Dog(Animal):
pass
dog = Dog()
print(isinstance(dog, Dog))
print(isinstance(dog, Animal))Output
True
TrueCommon Mistakes
Mistake 1: Forgetting Parent Constructor
❌ Wrong
class Child(Parent):
def __init__(self):
pass✔ Use super() when needed.
Mistake 2: Overriding Accidentally
A child method with the same name replaces the parent method.
Mistake 3: Complex Inheritance Trees
Avoid excessive inheritance levels because they make code difficult to understand.
Best Practices
- Use inheritance only when there is a true "is-a" relationship.
- Keep class hierarchies simple.
- Use
super()to reuse parent functionality. - Avoid unnecessary multiple inheritance.
- Prefer composition when inheritance becomes too complex.
Inheritance Summary
| Concept | Description |
|---|---|
| Parent Class | Class being inherited |
| Child Class | Class inheriting features |
| super() | Calls parent methods |
| Method Overriding | Replaces inherited method |
| Single Inheritance | One parent |
| Multiple Inheritance | Multiple parents |
| Multilevel Inheritance | Multiple levels |
| Hierarchical Inheritance | Multiple children |
Conclusion
Inheritance is a powerful OOP feature that promotes code reuse and creates logical relationships between classes.
You learned:
- What inheritance is
- Parent and child classes
- Method overriding
- The
super()function - Types of inheritance
- Real-world examples
- Best practices
Mastering inheritance will help you build scalable, maintainable, and professional Python applications.
Practice Exercises
Exercise 1
Create a Person class with a name attribute and a Student class that inherits from it.
Exercise 2
Create a Vehicle class with a start() method and a Car class with an additional drive() method.
Exercise 3
Create a multiple inheritance example using Father, Mother, and Child classes.


0 Comments