Inheritance implements Code Reuse. It is a feature of Object Oriented Programming paradigm wherein an existing class is used to create a new class. The new class inherits properties and methods of the base class. It can be enhanced in functionality by adding more methods and properties. If the method with same name exists in base class, derived class method overrides them. Python Class Inheritance is a useful technique of writing clean and reusable Python programs.
This is the hierarchy that we are going to implement. So, let’s learn how it is done!!

Create Base Class
To implement Python Class Inheritance first you need a base class. It can be a new class that passes on its properties and methods to multiple derived classes. If you have already created a class that you want to extend by adding more properties and methods, it can work as a base class.
To implement generalization concept of OOPs in your programs of applications, you can create a new base class. It must be created with common features shared by many derived classes. The base class is declared just like any other Python class.
Example
A base class User is created with properties – name, password and department. Methods include the constructor __ini__ to initialize objects of User Class, __str__ method to print the object properties and check method to check if the user name and password matches to grant them access.
Code:
class user: def __init__(self,name=None, password=None,department=None): self.name=name self.password=password self.department=department def __str__(self): return (self.name+" "+self.password+" "+self.department) def check(self, pwd): if (self.password==pwd): print("access granted") else: print("Access denied") #creating objects and testing class created above user1= user("Amy","Adams","Production") user2= user("Bob","Black","Sales") user3= user("Cathy","Keans","HR") print(user1) print(user2) print(user3) user2.check("kkkk")

Create Derived Class/ Child Class
Now that the base class or parent class is created, we can create child classes from it. A child class is a new class that inherits properties and methods from the base class. If you wish you can inherit same properties and method of base class by using keyword pass in child class declaration.
You can add new properties in the derived class in addition to the inherited ones. For this you need to declare them in derived class.
A child class Admin is created with rights as an additional property. Methods include the constructor __ini__ to initialize objects of Admin class, __str__ method to print the object properties and ChangeRights method to change access rights of a user.
Python Class Inheritance using pass keyword
class user: def __init__(self,name=None, password=None,department=None): self.name=name self.password=password self.department=department def __str__(self): return (self.name+" "+self.password+" "+self.department) def check(self, pwd): if (self.password==pwd): print("access granted") else: print("Access denied") class Admin(user): pass #inheriting everything from base class. No new methods or properties added #creating objects and testing classes created above user1= Admin("Amy","Adams","Production") user2= Admin("Bob","Black","Sales") user3= Admin("Cathy","Keans","HR") print(user1) print(user2) print(user3) user2.check("kkkk")

Python Class Inheritance with New Properties and Methods in Derived Class
class user: def __init__(self,name=None, password=None,department=None): self.name=name self.password=password self.department=department def __str__(self): return (self.name+" "+self.password+" "+self.department) def check(self): if (self.loginList[self.name]==self.password): print("access granted") else: print("Access denied") class admin(user): def __init__(self,name=None, password=None, deptt=None,rights=""): user.__init__(self, name, password, deptt) self.rights=rights def __str__(self): suptext=super().__str__() return(suptext+ " "+self.rights) def ChangeRights(self, newRights=None): self.rights=newRights #creating objects and testing classes created above adm= admin("Amy,","Adams","Production","View") print(adm) adm.ChangeRights("Read/Write/Execute") print("after changing rights") print(adm)

Be First to Comment