다형성의 개념은 실제로 이해하기 어렵지 않습니다. 다른 유형의 변수에 대해 동일한 작업을 수행하는 것을 말하며, 객체(또는 클래스)의 유형에 따라 다른 동작을 나타냅니다.
실제로 우리는 다음과 같은 다형성 속성을 자주 사용합니다.
>>> 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의 실제 유형이 호출됩니다. .다르게 대응하는 방법. 이것이 다형성의 아름다움입니다.
상속에는 다형성이 따르며, 다양한 유형의 객체는 동일한 메시지에 다르게 반응합니다.
다음 섹션