python

[python] class 오버라이딩(overriding), 상속, super()

전자둥이 2021. 11. 9. 08:57
반응형

안녕하세요, 파이썬은 객체지향 언어이다 보니 class을 사용하여 코딩을 하는 경우가 많습니다~

class을 사용하다보면 상속 및 오버라이딩을 종종 접하게 되는데 해당 내용에대해서 간단하게 알아보겠습니다.

상속와 오버라이딩 둘다 포함되어있는 예제코드를 우선 살펴보겠습니다.


그림을 보시면 parent()가 부모 클래스이고 daughter() 클래스와 son() 클래스가 parent클래스를 상속받는 것을 확인 할 수 있습니다.
그리고 son(), daughter() 클래스를 인스턴스화 시키고 실행 시켜본 결과 오버라이딩된 결과 또는 상속받은걸 그대로 내뱉는 결과들을 확인 하실 수 있습니다~

그 다음으로, super()에 대해서도 같이 알아보겠습니다.

 

super명령어는 상속 관계에서 상속의 대상인 부모 클래스를 호출하는 함수입니다.
super()의 인자로는 두 개가 전달되며, 하위클래스의 이름(즉 자식 클래스이름) 과 하위클래스의 객체(즉 자식 클래스의 인스턴스)가 필요합니다.

단, class 선언 내부에서 super을 호출하면, 인자 전달을 따로 하지 않아도 자동으로 해당 클래스의 부모 클래스를 호출해줍니다.

다음 예제를 살펴보겠습니다.

Son.name(), super(son,Son).name()을 살펴보면 super()이라는 함수가 어떻게 쓰이는지 확인 하실 수 있습니다.

 

긴 글 읽어주셔서 감사합니다~

반응형