프로그래밍 언어/파이썬

파이썬 27. 메서드 오버라이딩

닉네임못짓는사람 2020. 11. 19. 13:40
반응형

이번 글에서는 메서드 오버라이딩과 연산자 오버로딩에 대해서 알아보도록 하겠습니다.

 

메서드 오버라이딩


메서드 오버라이딩의 경우 상속개념 중 꼭 알아야 하는 것 중 하나입니다.

오버라이딩의 사전적 의미는 "우선하다, 중단시키다"인데, 부모로부터 상속받은 메서드를

자식클래스에서 재정의할 때 이를 오버라이딩이라고 합니다.

여기서 말하는 재정의는 이름만 같고, 메서드의 내용은 변경시키는 것을 의미합니다.

 

저번 글에서 상속관계에서 동일한 이름을 가진 메서드의 우선수위에 대해 이야기했는데,

자식클래스가 가장 먼저라는 것이 바로 이 오버라이딩 때문입니다.

예를 들어 부모클래스에 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