Python Inheritance: Unlock the Super Power of Object-Oriented Programming

Python Inheritance is the most important concept in programming it might be c, java, python..It’s used almost in every application, inheritance has a lot of benefits even.

Inheritance is a fundamental feature of object-oriented programming (OOP) that allows you to create a new class by extending an existing one. In Python, you can implement inheritance by creating a subclass that inherits the attributes and methods of its superclass.

To define a subclass, you simply need to specify the superclass in the definition using parentheses. The subclass can then access the attributes and methods of the superclass using the super() function.

Inheritance is a powerful feature of Python that allows you to reuse code, reduce code duplication, and create specialized classes that share common functionality.

Inheritance usage and detailed explanation is provided in this blog with the help of real time examples.

Let us try to see an example and understand the concept of python inheritance.

Python Inheritance Video Tutorial :

In this video tutorial let us try to see the detailed implementation of inheritance in python.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class Student:
studentName = 'Ravi'
def printstudentname(self):
print(self.studentname)
class Student: studentName = 'Ravi' def printstudentname(self): print(self.studentname)
class Student:
    studentName = 'Ravi'

    def printstudentname(self):
        print(self.studentname)

now try to create a object for the class Student and call the methods and variables.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
s1 = Student()
s1.printstudentname()
s1 = Student() s1.printstudentname()
s1 = Student()

s1.printstudentname()

output:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Ravi
Ravi
Ravi

Now try to create another class Professor

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class Professor:
professorName = 'Shyam'
def printprofessorname(self):
print(self.professorname)
class Professor: professorName = 'Shyam' def printprofessorname(self): print(self.professorname)
class Professor:
    professorName = 'Shyam'

    def printprofessorname(self):
        print(self.professorname)

Now create a object for Professor class

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
p1 = Professor()
p1.printprofessorname()
p1 = Professor() p1.printprofessorname()
p1 = Professor()

p1.printprofessorname()

Here we can access the variables and methods of Professor class.

Single Inheritance :

Single inheritance, which means that a subclass can only inherit from a single superclass. To create a subclass, you simply define it by specifying the superclass in parentheses after the class name.

The subclass then inherits all the attributes and methods of the superclass. You can override inherited methods in the subclass or add new methods and attributes specific to the subclass.

Considering the above example let us see single inheritance. We are extending Professor class with Student class

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class Student:
studentName = 'Ravi'
def printstudentname(self):
print(self.studentname)
class Professor(Student):
professorName = 'Shyam'
def printprofessorname(self):
print(self.professorname)
class Student: studentName = 'Ravi' def printstudentname(self): print(self.studentname) class Professor(Student): professorName = 'Shyam' def printprofessorname(self): print(self.professorname)
class Student:
    studentName = 'Ravi'

    def printstudentname(self):
        print(self.studentname)

class Professor(Student):
    professorName = 'Shyam'

    def printprofessorname(self):
        print(self.professorname)

And now try to create an object of professor class that can access both the class Student, Professor variables and methods.

Multilevel Inheritance :

Multilevel inheritance is a type of inheritance in Python where a subclass is derived from a superclass, which in turn is derived from another superclass. This means that the subclass inherits attributes and methods from both the immediate superclass and the super-superclass.

To implement multilevel inheritance in Python, you need to create a chain of classes where each class is derived from the class above it. You can define methods and attributes in each class that are specific to that class or inherited from the superclass.

Considering the above example let us see multi-level inheritance. We are extending Professor class, Student class with college class

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class Student:
studentName = 'Ravi'
def printstudentname(self):
print(self.studentname)
class Professor(Student):
professorName = 'Shyam'
def printprofessorname(self):
print(self.professorname)
class College(Professor):
collegeName = 'UV University'
def printcollegename(self):
print(self.collegeName)
class Student: studentName = 'Ravi' def printstudentname(self): print(self.studentname) class Professor(Student): professorName = 'Shyam' def printprofessorname(self): print(self.professorname) class College(Professor): collegeName = 'UV University' def printcollegename(self): print(self.collegeName)
class Student:
    studentName = 'Ravi'

    def printstudentname(self):
        print(self.studentname)

class Professor(Student):
    professorName = 'Shyam'

    def printprofessorname(self):
        print(self.professorname)

class College(Professor):
    collegeName = 'UV University'

    def printcollegename(self):
        print(self.collegeName)

And now try to create an object of college class that can access both the class Student, Professor variables and methods.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
p1 = College()
p1.printprofessorname() // professor
p1.printstudentname() // student
p1.printcollegename() // college
p1 = College() p1.printprofessorname() // professor p1.printstudentname() // student p1.printcollegename() // college
p1 = College()

p1.printprofessorname() // professor

p1.printstudentname()   // student

p1.printcollegename()  // college

output :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Shyam
Ravi
UV University
Shyam Ravi UV University
Shyam
Ravi
UV University

Multiple Inheritance :

Multiple inheritance is a type of inheritance in Python where a subclass is derived from two or more superclasses. This means that the subclass inherits attributes and methods from all the superclasses.

To implement multiple inheritance in Python, you need to define a class that inherits from two or more classes using a comma-separated list of the superclass names in parentheses after the class name. You can then define methods and attributes in the subclass that are specific to that subclass or inherited from the superclasses.

Now create one more class so that we can understand multiple inheritance.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class College(Professor, Student):
collegeName = 'Stanley'
def printcollegename(self):
print(self.collegename)
class College(Professor, Student): collegeName = 'Stanley' def printcollegename(self): print(self.collegename)
class College(Professor, Student):
    collegeName = 'Stanley'

    def printcollegename(self):
        print(self.collegename)

Now create a object for College class which can access both Professor and Student class.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
c1 = College()
c1.printprofessorname() // professor
c1.printstudentname() // student
c1.printcollegename() // college
c1 = College() c1.printprofessorname() // professor c1.printstudentname() // student c1.printcollegename() // college
c1 = College()

c1.printprofessorname() // professor

c1.printstudentname()   // student

c1.printcollegename()   // college

output:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Shyam
Ravi
Stanley
Shyam Ravi Stanley
Shyam
Ravi
Stanley

Inheritance allows you to create specialized subclasses that inherit the common attributes and methods of a superclass, making your code more modular and reusable. It also enables you to organize your code in a hierarchical manner, where subclasses inherit from other subclasses, creating a tree-like structure.

If you have any query’s in this tutorial on Python Inheritance do let us know in the comment section below.If you like this tutorial do like and share us for more interesting updates..