본문 바로가기
프로그래밍 관련/파이썬

메소드 오버라이딩/ 오버로딩 개념

by 존버매니아.임베디드 개발자 2021. 11. 28.
반응형

메소드 오버로딩이란

 

클래스 A 가 있고,

클래스 A를 상속받아서 만든 클래스 B가 있을 때

 

클래스 B는 클래스 A를 상속받았기 때문에, 클래스 B 에서는 클래스 A에 정의된 fun_A를 호출 할 수 있음.

 

근데 이 때, 클래스 B 에서 fun_A를 다시 재정의해서 원래 클래스 A에 정의된 fun_A랑 별개로 기능하는 펑션을

만들어 쓰는걸 메소드 오버로딩이라고 한다.

 

즉, 자식이 부모의 메소드를 그대로 안쓰고 다시 재정의해서 쓰는걸 말한다.

 

class paraent():
    def fun_a(self):
        print("나는 부모의 펑션이다.")

class child(paraent):  
    pass

class child_override(paraent):
    def fun_a(self):
        print("나는 물려받은거 재정의했음")

temp1 = child()
temp1.fun_a()

temp2 = child_override()
temp2.fun_a()
>>> 나는 부모의 펑션이다.
>>> 나는 물려받은거 재정의했음

child_override 클래스의 경우 fun_a를 재정의 했기 때문에 부모가 정의한거랑 다른 내용으로 실행 됨


메소드 오버로딩

메소드 오버로딩은 펑션 이름은 같은데 return 타입, 파라미터 갯수,파라미터의 데이터타입 등을 다르게 해서 만드는걸 말함

fun1(input1,input2,input3)

fun1(input1)

위 예시의 경우 이름은 같은데 인풋  파라미터 갯수가 다름

 

 

 

반응형