Python Tutorial - Klassenvererbung

  1. Python Class Inheritance Method Overriding
  2. Python Klasse Mehrfachvererbung
  3. Python Klasse Mehrstufige Vererbung

In diesem Abschnitt lernen Sie die Vererbung der objektorientierten Programmierung in Python kennen.

Bei der Vererbung wird eine Unterklasse von einer Elternklasse angelegt. Die Unterklasse erbt alles (Daten-Member und Memberfunktionen) von der Elternklasse.

Im Folgenden wird die Syntax der Vererbung in Python beschrieben:

class ParentClass:
    #members
class ChildClass(ParentClass):
    #members

In der Unterklasse stehen alle Eigenschaften der Elternklasse zur Verfügung und es können auch neue Funktionalitäten hinzugefügt werden.

Wie im untenstehenden Beispiel hat sie eine Elternklasse namens Auto und eine Kindklasse Car wird von ihr geerbt.

>>> 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

Sie können hier sehen, dass die Methoden der Klasse Auto in der Klasse Car verwendet werden können. Das liegt daran, dass “Auto” von “Auto” geerbt wird.

Innerhalb des Konstruktors von Auto wird der Konstruktor von Auto aufgerufen. Das Objekt von Car kann verwendet werden, um alle Methoden von Auto aufzurufen.

Python Class Inheritance Method Overriding

Methodenüberschreibung ist, wenn Sie die gleichen Methoden sowohl für Unter- als auch für Elternklassen haben. Das Übersteuern von Methoden ist im Grunde ein Konzept, bei dem eine Unterklasse die Implementierung von Methoden ihrer Elternklasse ändert.

Betrachten wir das Beispiel, bei dem die Kindklasse “Auto” die gleiche “Display”-Methode wie in der “Auto”-Klasse hat, aber die Implementierung geändert wird:

>>> 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

Wenn nun die Display-Methode im Objekt c aufgerufen wird, wird die Methode der Kindklasse aufgerufen.

Python Klasse Mehrfachvererbung

Mehrfachvererbung geschieht, wenn eine Unterklasse mehr als eine Elternklasse hat. Die Funktionalität jeder Elternklasse wird an die Tochterklasse vererbt.

Im Folgenden wird die Syntax der Mehrfachvererbung beschrieben:

class A:
    #members
class B:
    #members
class child(A, B):
    #members

Beispiel:

>>> 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

Es ist zu beachten, dass das Objekt von C (Unterklasse) die Methoden seiner Elternklassen A und B aufrufen kann. Daher kann man sagen, daß C alles von A und B erbt.

Python Klasse Mehrstufige Vererbung

Mehrstufige Vererbung ist, wenn Sie eine Unterklasse von einer anderen Unterklasse erben.

Die Syntax der mehrstufigen Vererbung ist wie folgt:

class A:
    #members
class B(A):
    #members
class C(B):
    #members

Beispiel:

>>> 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

Sie könnten hier sehen, dass die Klasse C die Methoden ihrer Eltern- und Großelternklassen aufrufen kann.

comments powered by Disqus