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('两点水') printUserInfo(userVip) userGeneral = UserGeneral('水水水') printUserInfo(userGeneral)
Ausgabeergebnis:
Hello ! 尊敬的Vip用户:两点水 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.