본문 바로가기
Programming/Python

[클래스] 메서드 오버라이딩 사용하기

by 용스토리랜드 2023. 3. 13.

[참고] 저자 본인의 공부 및 참고용으로 쓰여진 글인점을 알려드립니다.

# 코딩도장의 내용입니다.

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