이것저것 적어보는 블로그

오버로딩(Overloading)과 오버라이딩(Overriding) 본문

개발&코딩

오버로딩(Overloading)과 오버라이딩(Overriding)

dona0408 2019. 1. 12. 23:39
반응형

1. 오버로딩 (Overloading)

오버로딩 (Overloading)은 "같은 클래스에서 같은 이름의 메서드를 사용하는 것" 이라는 의미를 가지고 있습니다

오버로딩의 조건으로는

1) 매개변수의 갯수가 달라야 한다.

2) 매개변수의 타입이 달라야 한다.

라는 조건이 있습니다. 이는 둘 중 하나만 만족해도 되는 성질입니다.


파이썬을 예시로 들면

def func (x) 와 def func (x,y)는 서로 다른 함수로 인식을 한다는 겁니다.

파이썬에서는 매개변수의 타입 지정이 따로 없으므로 1번 조건만 있습니다.


자바의 경우

void func (int x) 와 void func (int x, int y) 가 다른 것이고 void func(double x)와는 또 다른 것입니다.

즉, 3개 모두 다른 메서드로 간주됩니다.




2. 오버라이딩 (Overriding)

오버라이딩(Overriding)은 '다른 무엇보다 더 중요한'이라는 의미를 가진 영어 단어로

프로그래밍에서는 이를 부모 클래스에서 정의한 메서드를 자식 클래스에서 변경을 하는 것" 을 의미합니다.

부모 클래스로부터 상속을 받으면 자식 클래스에 동일한 메서드가 생성됩니다.

이러한 자식 클래스에서 상속받은 메서드를 수정할 경우 자식 클래스의 메서드를 우선적으로 적용합니다.

예시로 아래의 파이썬 코드를 보여드리겠습니다.

class bicycle:
def changeSpeed(self):
print("Call bicylce's changeSpeed")

class ChildBicycle(bicycle):
def changeSpeed(self):
print("Call ChildBicycle's changeSpeed")

ChildBicycle1=ChildBicycle()
ChildBicycle1.changeSpeed()
위와 같이 이런 출력 결과가 나오게 됩니다.


반응형

'개발&코딩' 카테고리의 다른 글

AWS EC2 가상메모리 설정  (1) 2023.07.04
AWS EC2 mysql 설치 & 초기 설정  (0) 2023.07.02
Ruby 기본 문법  (0) 2020.08.02
코딩 관련 사이트  (0) 2018.12.31
컴파일러와 인터프리터의 차이  (2) 2018.09.09
Comments