Overerving van Python Class

  1. Overerving van Python Class-methode
  2. Python Class Meervoudige overerving
  3. 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.