여러가지 알고리즘을 만들다보면 먼저 개발이 완료된 클래스의 함수 값을 가져와서 사용해야 되는 경우가 있다.
간단한 예제를 사용해서 연습하면 빠르게 오버라이드를 이해할 수 있다.
class Optimal(object):
# Optimal 클래스는 Multi 클래스의 부모 클래스이다.
def __init__(self, MainBody, Adjusted):
self.MainBody = MainBody
self.Adjusted = Adjusted
def sum(self):
result = self.MainBody + self.Adjusted
return result
class Multi(Optimal):
# Multi 클래스는 Optimal 클래스의 자식 클래스이다.
def sum(self):
result = self.MainBody - self.Adjusted
return "Multi.sum : {} , Optimal.sum : {} " .format(result, super().sum())
C2 = Multi(20, 10)
print(C2.sum())
결과를 보면 바로 오버라이드 이해가 될 것이다. (요약하면, super().sum()으로 자식 클래스의 메소드를 무효화할 수 있다.)