If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
किसी class को या Class की properties / behavior को extend करना Inheritance कहते हैं। जिस class को extend किया गया है उसे Parent Class , जिस class के द्वारा extend किया गया है उसे Child Class कहते हैं।
Extend करने पर Parent Class में present सभी properties / methods को child class द्वारा access किया जा सकता है।मतलब जो भी variables या methods parent class में होंगे बो child class में भी होंगे।
Python मुख्य रूप से तीन तरह की inheritance को support करती है।
Single Inheritance में किसी class द्वारा सिर्फ एक single class को ही Inherit किया जाता है। इस पूरे topic में आप single inheritance के बारे में ही पढ़ेंगे।
Python में किसी class को inherit करने के लिए simply class define करते समय parenthesis () में parent class ka name pass कर दिया जाता है।
# define parent class.
class ParentClass :
# defining constructor.
def __init__(self, fname, lname, age) :
self.fname = fname
self.lname = lname
self.age = age
# function to print data.
def print_info(self) :
print('Full Name : ', self.fname, self.lname)
print('Age : ', self.age)
# defining child class.
class ChildClass(ParentClass) :
# just use pass statement because don't want to add anything in this class.
pass
# initializing child class object to print data.
obj = ChildClass('Rahul', 'Kumar', 24)
obj.print_info()
C:\Users\Rahulkumar\Desktop\python>python inheritance.py Full Name : Rahul Kumar Age : 24
example में आप देख सकते हैं कि ParentClass में defined print_info() method को ChildClass Object द्वारा access किया गया है।
Note : pass keyword का use तब किया जाता है जब हमें class में कोई property या method को add नहीं करना हो।
अगर child class में कोई constructor नहीं है तो parent class का constructor child class का होगा , इसीलिए example में child class का Object बनाते समय data pass किया गया है।
और अगर child class में भी constructor (__init__()) method है तो parent class का constructor overwrite हो जाता है। फिर हमें manually parent class का constructor call करना होगा।
child class के अंदर parent class का कोई variable या method को super() method या parent class के name से access करते हैं।
See Example -
class ParentClass :
def __init__(self, fname, lname, age) :
self.fname = fname
self.lname = lname
self.age = age
def print_info(self) :
print('Full Name : ', self.fname, self.lname)
print('Age : ', self.age)
# defining child class.
class ChildClass(ParentClass) :
def __init__(self, fname, lname, age) :
# we can also use parent class name (ParentClass) instead of super().
super().__init__(fname, lname, age)
# initializing child class object to print data.
obj = ChildClass('Rahul', 'Kumar', 24)
obj.print_info()
C:\Users\Rahulkumar\Desktop\python>python inheritance.py Full Name : Rahul Kumar Age : 24
parent class के method को child class में overwrite करना ही method overriding कहलाता है।
class ChildClass(ParentClass) :
# overwrite print_info() method.
def print_info(self) :
print('Full Name : ', self.fname, self.lname)
print('Age : ', self.age)
C:\Users\Rahulkumar\Desktop\python>python inheritance.py Full Name : Rahul Kumar Age : 24
चूंकि inheritance में parent class की सभी properties और methods child class से access किया जा सकता है। मलतब हम child class में current Object (जो कि method में default parameter होता है।) या super() method के through access कर सकते हैं।
For Example -
# parent class.
class Info :
fname = 'Aryendra'
lname = 'Sharma'
age = 35
# child class.
class User(Info) :
#method to print name.
def get_name(self) :
print('Full Name : ', self.fname, self.lname)
# method to print age, here we will access using super() method.
def get_age(self) :
print('Age : ', super().age)
# initialize object and call function.
obj = User()
obj.get_name()
obj.get_age()
C:\Users\Rahulkumar\Desktop\python>python inheritance.py Full Name : Aryendra Sharma Age : 35
I Hope, अब Python में Inheritance के बारे में अच्छे से समझ गए होंगे।