Overerving van Python Class
- Overerving van Python Class-methode
- Python Class Meervoudige overerving
- Overerving in meerdere niveaus van Python Class

In deze sectie leert u overerving van Python-objectgeoriënteerd programmeren.
In Inheritance wordt een kindklasse gemaakt op basis van een ouderklasse. De onderliggende klasse neemt alles (gegevensleden en lidfuncties) over van de bovenliggende klasse.
Het volgende is de syntaxis van overerving in Python:
class ParentClass:
#members
class ChildClass(ParentClass):
#members
In de kindklasse beschikt u over alle functies van de ouderklasse en kunnen ook nieuwe functionaliteiten worden toegevoegd.
Net als in het onderstaande voorbeeld heeft het een bovenliggende klasse met de naam Auto
en is er een onderliggende klasse van car
geërfd.
>>> class Auto:
def __init__(self, e, n):
self.engine = e
self.name = n
def display(self):
print("Name of Auto: ", self.name)
print("Engine of auto: ", self.engine)
>>> class Car(Auto):
def __init__(self):
self.x= input("Enter name of car: ")
self.y= input("Enter engine of car: ")
Auto.__init__(self,self.y,self.x)
>>> c = Car()
Enter name of car: Prius
Enter engine of car: 1.5l
>>> c.display()
Name of Auto: Prius
Engine of auto: 1.5l
Je kunt hier zien dat de methoden van Auto
klasse in de Car
klasse kunnen worden gebruikt . Het is omdat Car
is geërfd van Auto
.
Binnen de constructor van Car
wordt de constructor van Auto
genoemd. Het object van Car
kan worden gebruikt om alle methoden van aan te roepen Auto
.
Overerving van Python Class-methode
Methode overschrijven is wanneer u dezelfde methoden heeft voor zowel klassen voor kinderen als voor ouders. Methode opheffen is in feite een concept waarin een kindklasse de implementatie van methoden van zijn bovenliggende klasse verandert.
Beschouw het voorbeeld waarbij de onderliggende klasse Car
dezelfde display
methode heeft als in de Auto
klas, maar de implementatie is gewijzigd:
>>> class Auto:
def __init__(self, e, n):
self.engine = e
self.name = n
def display(self):
print("Name of Auto: ", self.name)
print("Engine of auto: ", self.engine)
>>> class Car(Auto):
def __init__(self):
self.x= input("Enter name of car: ")
self.y= input("Enter engine of car: ")
Auto.__init__(self,self.y,self.x)
def display(self):
print("You are in child class")
>>> c = Car()
Enter name of car: Prius
Enter engine of car: 1.5l
>>> c.display()
You are in child class
Dus nu wanneer de weergavemethode in object wordt aangeroepen c
, wordt de methode van de onderliggende klasse aangeroepen.
Python Class Meervoudige overerving
Meerdere overerving gebeurt wanneer een kindklasse meer dan één ouderklasse heeft. De functionaliteiten van elke ouderklasse worden overgenomen door de kindklasse.
Het volgende is de syntaxis van meervoudige overerving:
class A:
#members
class B:
#members
class child(A, B):
#members
Voorbeeld:
>>> class A:
def dispA(self):
print('You are in class A')
>>> class B:
def dispB(self):
print('You are in class B')
>>> class C(A, B):
def dispC(self):
print('You are in class C')
>>> Cobj = C()
>>> Cobj.dispA()
You are in class A
>>> Cobj.dispB()
You are in class B
>>> Cobj.dispC()
You are in class C
Opgemerkt moet worden dat het object van C
(onderliggende klasse) de methoden van de bovenliggende klassen A
en kan aanroepen B
. Daarom kun je zeggen dat C alles van A
en overneemt B
.
Overerving in meerdere niveaus van Python Class
Overerving op meerdere niveaus is wanneer u een kindklasse van een andere kindklasse erft.
De syntaxis van overerving op meerdere niveaus is als volgt:
class A:
#members
class B(A):
#members
class C(B):
#members
Voorbeeld:
>>> class A:
def dispA(self):
print('You are in class A')
>>> class B(A):
def dispB(self):
print('You are in class B')
>>> class C(B):
def dispC(self):
print('You are in class C')
>>> Cobj = C()
>>> Cobj.dispA()
You are in class A
>>> Cobj.dispB()
You are in class B
>>> Cobj.dispC()
You are in class C
Je zou hier kunnen zien dat de C
klas de methoden van haar ouder- en grootouderklassen kan gebruiken.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn