[참고] 저자 본인의 공부 및 참고용으로 쓰여진 글인점을 알려드립니다.
# 코딩도장의 내용입니다.
https://dojang.io/mod/page/view.php?id=2387
파이썬 코딩 도장: 36.4 메서드 오버라이딩 사용하기
이번에는 파생 클래스에서 기반 클래스의 메서드를 새로 정의하는 메서드 오버라이딩에 대해 알아보겠습니다. 다음과 같이 Person의 greeting 메서드가 있는 상태에서 Student에도 greeting 메서드를 만
dojang.io
Subclass 에서 Superclass 의 메서드를 새로 정의하는 method overriding
class Person :
def greeting(self) :
print('hello')
class Student(Person) :
def greeting(self) :
print('hello, i am yhlee')
yhlee = Student()
yhlee.greeting()
>>> 'hello, i am yhlee'
Overriding : 무시하다, 우선하다
말 그대로 Superclass 의 메서드를 무시하고 새로운 메서드를 만든다는 뜻입니다.
Method Overriding (메서드 오버라이딩) 을 사용하는 이유
- 보통 프로그램에서 어떤 기능이 같은 메서드 이름으로 계속 사용되어야 할 때 메서드 오버라이딩을 활용한다.
class Person:
def greeting(self):
print('안녕하세요.')
class Student(Person):
def greeting(self):
super().greeting() # 기반 클래스의 메서드 호출하여 중복을 줄임
print('저는 파이썬 코딩 도장 학생입니다.')
james = Student()
james.greeting()
>>> 안녕하세요.
>>> 저는 파이썬 코딩 도장 학생입니다.
Student 의 greeting 에서 super().greeting() 으로 Person 의 greeting 을 호출했습니다. 즉, 중복되는 기능은 SubClass 에서 다시 만들지 않고, 기반 클래스의 기능을 사용할 수 있다.
즉, super().method() 로 호출이 가능하다. 오버라이딩을 했다고 해서 SuperClass 의 메서드가 변하는 것은 아니다. 기존에 있던 것을 가져다 쓸 수 도 있고, SuperClass 의 메서드를 조금 수정, Customising 해서 사용하거나 새로운 함수를 만들어서 사용할 수 도 있다.
'Programming > Python' 카테고리의 다른 글
[Error] Attribute Error (0) | 2023.03.16 |
---|---|
예외 처리 사용하기 (0) | 2023.03.15 |
[클래스] 기반 클래스의 속성 사용하기 (1) | 2023.03.13 |
[클래스] 상속 관계와 포함 관계 (1) | 2023.03.13 |
[클래스] 상속 사용하기 (0) | 2023.03.13 |