클래스 다형성
다형성의 개념은 실제로 이해하기 어렵지 않습니다. 다른 유형의 변수에 대해 동일한 작업을 수행하는 것을 말하며, 객체(또는 클래스)의 유형에 따라 다른 동작을 나타냅니다.
실제로 우리는 다음과 같은 다형성 속성을 자주 사용합니다.
>>> 1 + 2 3 >>> 'a' + 'b' 'ab'
두 정수에 대해 + 연산을 수행하면 두 문자에 대해 동일한 + 연산이 연결된 문자열을 반환한다는 것을 알 수 있습니다. 즉, 서로 다른 유형의 개체는 동일한 메시지에 다르게 응답합니다.
다형성을 이해하려면 다음 예를 살펴보세요.
#!/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)
출력 결과:
Hello ! 尊敬的Vip用户:两点水 Hello ! 尊敬的用户:水水水
userVip과 userGeneral이 서로 다른 두 개체라는 것을 알 수 있습니다. 이에 대해 printUserInfo 메서드를 호출하면 자동으로 printUser의 실제 유형이 호출됩니다. .다르게 대응하는 방법. 이것이 다형성의 아름다움입니다.
상속에는 다형성이 따르며, 다양한 유형의 객체는 동일한 메시지에 다르게 반응합니다.