다향성, 우리가 아는 함수명은 절대적으로 하나만을 갖고 있는 게 정상인데요, 이 다향성은 그 룰을 파괴합니다.
오버로딩
오버로딩은 같은이름의 함수지만 매개변수의 갯수나 타입에 차이가 있는 경우를 말합니다.
int Plus( int a , int b) {
return a + b;
}
char Plus( char a, char b) {
return a + b;
}
위 두 함수는 리턴함수의 타입이 다르므로 다른 함수라고 볼 수 있습니다.
int Plus( int a , int b) {
return a + b;
}
int Plus( int a , int b, int c) {
return a + b + c;
}
위 두 함수는 매개변수의 갯수가 다르므로 다른 함수라고 볼 수 있습니다.
결과적으로 함수명이 같아도 타입의 차이, 매개변수의 갯수차이가 있으면 같은 함수명을 사용할 수 있다는 게 오버로딩을 말한다는 거는 아셨을 것 같습니다.
그렇다면 오버로딩을 사용하면 뭐가 좋을까요?
일단... 함수명 하나만 정하면 됩니다. 저는 이 장점이 가장 최고라고 생각합니다.
오버라이딩
오버라이딩은 기존의 것을 덮어써서 재정의하는 것을 말하는데요. 그래서 보통 상속에서 많이 사용이 됩니다.
오버라이딩은 사용이 아주 간단합니다. 바로 부모의 함수를 그대로 들고 와서 필요한 값만 변경하는 것인데요.
주의해야 할 점은 오버라이딩 시에 함수명과, 매개변수와 리턴값은 일치해야 한다는 점입니다.
그리고 C언와 java언어에서 오버라이드 사용 시 조금 차이가 있습니다.
public parent {
public virtual void bark()
}
public child : parent {
public override void bark(){
console.writeLine("왈");
}
}
public parent {
public void bark();
}
public child extends parent {
@Override
public void bark(){
console.writeLine("왈");
}
}
언어마다 형태가 조금씩 다르니 본인이 사용하는 언어방식을 찾아서 사용하시면 됩니다.
'프로그래밍📚' 카테고리의 다른 글
객체지향이란? (0) | 2024.02.05 |
---|---|
사용자 정의 타입이란? - interface (0) | 2024.02.05 |
사용자 정의 타입이란? - class (0) | 2024.02.05 |
사용자 정의 타입이란? - 공용체와 enum (0) | 2024.02.05 |
사용자 정의 타입이란? - 구조체 (0) | 2024.02.05 |