반응형
이번 글에서는 메서드 오버라이딩과 연산자 오버로딩에 대해서 알아보도록 하겠습니다.
메서드 오버라이딩
메서드 오버라이딩의 경우 상속개념 중 꼭 알아야 하는 것 중 하나입니다.
오버라이딩의 사전적 의미는 "우선하다, 중단시키다"인데, 부모로부터 상속받은 메서드를
자식클래스에서 재정의할 때 이를 오버라이딩이라고 합니다.
여기서 말하는 재정의는 이름만 같고, 메서드의 내용은 변경시키는 것을 의미합니다.
저번 글에서 상속관계에서 동일한 이름을 가진 메서드의 우선수위에 대해 이야기했는데,
자식클래스가 가장 먼저라는 것이 바로 이 오버라이딩 때문입니다.
예를 들어 부모클래스에 fun1이라는 메서드가 있고, 자식클래스에서 다시 fun1이라는 메서드를 정의하면
자식클래스의 인스턴스에서 호출되는 것은 자식클래스의 fun1메서드가 됩니다.
코드로 한번 이를 확인해봅시다.
class Parent:
def __init__(self):
print("Parent1클래스 생성")
def fun1(self):
print("Parent클래스의 fun1")
class Child(Parent):
def fun1(self):
print("Child클래스의 fun1")
c = Child()
c.fun1()
위의 코드에서 fun1이라는 메서드를 Parent에 정의하고, Child클래스에도 정의했습니다.
그리고 Child클래스의 인스턴스를 만들어서 fun1함수를 호출하게되면, Child클래스의 fun1이 호출된 것을 볼 수 있습니다.
이렇게 부모클래스의 메서드를 자식클래스에서 재정의하여 사용하는 것을 '메서드 오버라이딩'이라고 합니다.
이번 글은 이 정도로 마치도록 하겠습니다.
감사합니다.
반응형
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
파이썬 29. 패키지 (0) | 2020.11.30 |
---|---|
파이썬 28. 모듈 (0) | 2020.11.23 |
파이썬 26. 상속 (0) | 2020.11.17 |
파이썬 25. 클래스-2 (0) | 2020.11.16 |
파이썬 24. 클래스-1 (0) | 2020.11.11 |