반응형
이번 포스팅에서는 파이썬의 메소드 재정의 (Method Overriding)에 대하여 공부를 해보고자 한다.
아래의 글을 먼저 보고 오면 이해하는데 도움이 될 것이다.
2022.09.27 - [Python/파이썬 기초] - [Python] 상속(Inheritance)
메소드 재정의 (Method Overriding)
메소드 오버라이딩은 부모 클래스(parent class)의 메소드의 구현부를 자식 클래스(child class)에서 재 구현하여 메소드 구현을 좀 더 구체화하는 것이다.
자식 클래스(child class)에서는 상속받은 부모 클래스의 메소드를 그대로 사용해도 되고, 추가하거나 변경해야 할 사항이 생기면 메소드 오버라이딩을 통해 메소드를 재정의하여 사용할 수 있다.
예제
Person 클래스를 생성하고 함수를 정의한다.
class Person:
def go(self):
print("학교에 간다.")
def eat(self):
print("밥을 먹는다.")
Student2 클래스를 생성하고 함수를 정의한다.
메소드를 Person에 정의하고 그것을 상속받아서 재 구현한다.
class Student2(Person):
def eat(self):
print("학생식당에서 점심을 먹는다.")
Student2 객체를 생성하고 속성(Attribute) 값들을 조회한다.
s2 = Student2()
s2.eat() # overriding된 메소드가 실행됨.
s2.go() # 부모 class의 메소드가 실행
[실행결과]
학생식당에서 점심을 먹는다.
학교에 간다.
반응형
'Back-End > Python' 카테고리의 다른 글
[Python] 특수 메소드 (0) | 2022.09.28 |
---|---|
[Python] super 함수 (0) | 2022.09.27 |
[Python] 상속(Inheritance) (0) | 2022.09.27 |
[Python] 정보 은닉(Information Hiding) (0) | 2022.09.27 |
[Python] 객체지향 프로그래밍(OOP) (2) | 2022.09.26 |