polymorphisme de classe

Le concept de polymorphisme n'est en fait pas difficile à comprendre. Il fait référence à l'exécution de la même opération sur des variables de différents types, et il montrera des comportements différents selon le type d'objet (ou de classe).

En fait, nous utilisons souvent des propriétés polymorphes, telles que :

>>> 1 + 2
3
>>> 'a' + 'b'
'ab'

Vous pouvez voir que lorsque nous effectuons l'opération + sur deux entiers, leur somme sera renvoyée. La même opération + sur deux caractères renverra la chaîne concaténée. Autrement dit, des objets de types différents répondront différemment au même message.

Regardez l'exemple suivant pour comprendre le polymorphisme :

#!/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)

Résultat de sortie :

Hello ! 尊敬的Vip用户:两点水
Hello ! 尊敬的用户:水水水

Vous pouvez voir que userVip et userGeneral sont deux objets différents si vous appelez la méthode printUserInfo sur eux, ils appelleront automatiquement le type réel de printUser. .des méthodes pour réagir différemment. C'est la beauté du polymorphisme.

Veuillez noter que l'héritage entraîne le polymorphisme et que les objets de différents types répondront différemment au même message.

Formation continue
  • Recommandations de cours
  • Téléchargement du didacticiel