polimorfisme kelas
Konsep polimorfisme sebenarnya tidak sukar untuk difahami Ia merujuk kepada melakukan operasi yang sama pada pembolehubah yang berlainan jenis, dan ia akan menunjukkan tingkah laku yang berbeza bergantung pada jenis objek (atau kelas).
Sebenarnya, kita sering menggunakan sifat polimorfik, seperti:
>>> 1 + 2 3 >>> 'a' + 'b' 'ab'
Anda dapat melihat bahawa apabila kita melakukan operasi + pada dua integer, jumlahnya akan dikembalikan Operasi + yang sama pada dua aksara akan mengembalikan rentetan bercantum. Iaitu, objek yang berlainan jenis akan bertindak balas secara berbeza kepada mesej yang sama.
Lihat contoh berikut untuk memahami polimorfisme:
#!/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)
Hasil keluaran:
Hello ! 尊敬的Vip用户:两点水 Hello ! 尊敬的用户:水水水
Anda boleh melihat bahawa userVip dan userGeneral ialah dua objek berbeza Jika anda memanggil kaedah printUserInfo padanya, mereka akan memanggil jenis PrintUser yang sebenar . kaedah untuk bertindak balas secara berbeza. Inilah keindahan polimorfisme.
Sila ambil perhatian bahawa dengan warisan datang polimorfisme, dan objek daripada jenis yang berbeza akan bertindak balas secara berbeza kepada mesej yang sama.