객체지향 프로그래밍에서 메서드 오버로딩(overloading)이란 무엇인가?

초월차선·2023년 2월 4일

Java

목록 보기
4/14

오버로딩의 정의:

오버로딩이라는 뜻은 사전적으로 과적하다 라는 뜻이다. C언어에서는
함수명이 오직 하나만 존재해야한다. 다시 말하면, 하나의 함수가 하나의 기능만을
할 수 있다는 의미이다. 하지만, 자바에서는 하나의 메서드 이름으로 여러 기능을
할 수 있다. 여러 기능이라는 것은 메서드명을 같게 하여 매개변수를 여러 형태로 받을
수 있다는 의미이다.

오버로딩의 정의는 자바의 한 클래스 내에 이미 존재하는 메서드명이 있더라도 매개변수
의 갯수, 타입, 순서가 다르면, 같은이름으로 여러 메서드를 생성하는 것을 말한다.
아래 예제가 있으니 예제를 보면 더 쉽게 이해가 갈 것이다.

오버로딩의 조건:

  1. 매개변수의 타입, 개수, 순서가 달라야 한다.
  2. 리턴타입이 어떤타입이든 오버로딩과 무관하다.

오버로딩을 사용하는 이유:

매개값을 다양하게 받아 처리할 수 있도록 하기 위해서이다. 매개값을 다양하게 받으면 하나의 메서드명으로 여러 타입의 매개변수를 받을 수 있고, 객체지향의 특징인 다형성을 나타낸 예로도 볼수있다.

오버로딩 예제:

예를 들어 int끼리 더하는 메서드와, double형끼리 더하는 메서드를 만들고 싶다고 하자.
메서드명을 하나로 plus라고 하면 더 직관적이고 좋을 것이다. 그래서 아래와 같이 해주자.
직관적인 메서드명을 사용할 수 있고, 메서드명으로 더 고민할 필요도없다.

int plus(int x, int y){
	int a=x+y;
    return a;
}

double plus(double x, double y){
	double a=x+y;
    return a;
}

0개의 댓글