객체지향 프로그래밍(Object Oriented Programming)의 특징
'🎨 다형성(Polymorphism)' 이 오버로딩, 오버라이딩에서 드러납니다.
다중 정의는 정수, 식별자, 연산자에 대한 성질로 동일한 유효 범위 내에서도 여러 가지 뜻을 가질 수 있다.
📢 [네이버 지식백과] 오버로딩 [컴퓨터인터넷IT용어대사전]
간단하게 설명하면 같은 이름의 함수에 매개변수를 다르게 주는 것입니다.
오버로딩의 조건이 4가지 정도 있습니다.
예시를 보면 쉽게 알 수 있습니다.
void add(int num_1, int num_2)
{
printf("%d", num_1 + num_2);
return 0;
}
void add(float num_1, float num_2)
{
printf("%f", num_1 + num_2);
return 0;
}
이렇게 가능하다는 것입니다.
따라서 같은 이름의 함수를 매개변수의 수 혹은 자료형을 다르게 하여 여러개를 선언할 수 있습니다.
리턴형은 같아도 달라도 상관없습니다.
상위 클래스에서 정의된 변수와 메소드의 내용을 하위 클래스에서 변경하여 재정의하는 것
class Parent
{
public:
void printA(int a)
{
printf("%d", a);
}
};
class Child : public Parent
{
public:
void printA(int a)
{
printf("%d", a + a);
}
};
int main(void)
{
Parent a;
Child b;
a.printA(10);
b.printA(10);
return 0;
}
결과 : 1020
이렇게 결과가 나오는걸 볼 수 있습니다.
'부모클래스의 메서드는 무시하고, 자식 클래스의 메서드 기능을 사용하겠다'와 같습니다.
오버로딩 | 오버라이딩 | |
---|---|---|
함수 이름 | 동일 | 동일 |
매개변수 수, 타입 | 다름 | 동일 |
리턴 타입 | 상관없음 | 동일 |
Refenece