Klassenpolymorphismus
Das Konzept des Polymorphismus ist eigentlich nicht schwer zu verstehen. Es bezieht sich auf die Ausführung derselben Operation an Variablen unterschiedlichen Typs und zeigt je nach Objekttyp (oder Klasse) unterschiedliche Verhaltensweisen.
Tats?chlich verwenden wir oft polymorphe Eigenschaften, wie zum Beispiel:
>>> 1 + 2 3 >>> 'a' + 'b' 'ab'
Wie Sie sehen k?nnen, wird deren Summe zurückgegeben, wenn wir die -Operation für zwei Ganzzahlen ausführen, und zwar für zwei Zeichen Wenn Sie denselben -Vorgang ausführen, wird die verkettete Zeichenfolge zurückgegeben. Das hei?t, verschiedene Objekttypen reagieren unterschiedlich auf dieselbe Nachricht.
Sehen Sie sich das folgende Beispiel an, um Polymorphismus zu verstehen:
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- class User(object): def __init__(self, name): self.name = name def printUser(self): print('Hello !' + self.name) class UserVip(User): def printUser(self): print('Hello ! 尊敬的Vip用戶:' + self.name) class UserGeneral(User): def printUser(self): print('Hello ! 尊敬的用戶:' + self.name) def printUserInfo(user): user.printUser() if __name__ == '__main__': userVip = UserVip('兩點(diǎn)水') printUserInfo(userVip) userGeneral = UserGeneral('水水水') printUserInfo(userGeneral)
Ausgabeergebnis:
Hello ! 尊敬的Vip用戶:兩點(diǎn)水 Hello ! 尊敬的用戶:水水水
Wie Sie sehen k?nnen, sind userVip und userGeneral zwei verschiedene Objekte. Aufruf der printUserInfo-Methode. Sie rufen automatisch die printUser-Methode des tats?chlichen Typs auf und reagieren unterschiedlich. Das ist das Sch?ne am Polymorphismus.
Bitte beachten Sie, dass bei der Vererbung Polymorphismus m?glich ist und Objekte unterschiedlichen Typs unterschiedlich auf dieselbe Nachricht reagieren.