//본래는 이름이 중복된 메서드는 존재가 불가능하다! (변수와 마찬가지로!)
//C언어 : 중복 절대 안됨!!
//C++에서는 중복을 허용할 수 있는 방법이 시작됨
public class Exam_03 {
//메서드의 이름이 같아도, 매개변수의 종류 또는 개수가 다르면
//다른 메서드로 인식한다.
public static void func() {
System.out.println("A");
}
public static void func(int num) {
System.out.println("B");
}
public static void func(double d) {
System.out.println("C");
}
public static void func(int num1, int num2) {
System.out.println("D");
}
public static void main(String[] args) {
func();
func(100);
//이름이 같아도 구분이 안됨...
//이름이 같아도 구분이 되는게 생긴다면, 중복을 oK해주겠다.
//매개변수의 유무에 따라도 분류가 되고
//매개변수종류의 차이에 따라서도 분류가 된다.
func(100.0);
func(3,9);
//이것을 자바의 메서드 오버로딩(Method Overroading) 이라고 한다.
//오버로딩 (직역:과하게 적재하다, 의미 :이름 하나가 너무 많은 기능을 가지고 있다.)
//오버로딩을 가능하게 하는 것은 매개변수 때문 (return값은 기준이 되지 못함)
System.out.println();
//println의 매개변수를 추측할 수 없다.
//int를 넣어도, String을 넣어도, double을 넣어도 출력이 되니까..
//println이 메서드 오버로딩으로 만들어진 메서드임을 알 수 있음.
System.out.println();
}
}
Comment