Everything has an expiration date
104 - Java 클래스와 인스턴스 : 메소드 오버로딩(Method OverLoading)이 가능한 형태와 불가능한 형태 본문
[Java]/Program source (java)
104 - Java 클래스와 인스턴스 : 메소드 오버로딩(Method OverLoading)이 가능한 형태와 불가능한 형태
Jelly-fish 2023. 9. 11. 13:14/*========================================================================
■■■ 클래스와 인스턴스 ■■■
- 메소드 오버로딩(Method Overloading)이 가능한 형태와 불가능한 형태
==========================================================================*/
public class Test104
{
public static void main(String[] args)
{
print();
print('a');
print(20);
print(3.14);
double result = print(3.14);
// 반환 자료형이 다르다는 건 메소드를 식별하는 과정에서 절대 개입할 수 없다.
// Java는 대입 연산자에서 오른쪽 항만을 먼저 보기 때문에
// return 타입을 쳐다 보지도 못한다. 즉, 리턴 자료형 타입은 호출 과정에서
// 메소드의 구분을 할 수 없게끔 한다.
}
public static void print() {}
//public static void print() {} //--(Ⅹ)
public static void print(int i) {}
//public static void print(int j) {} //--(Ⅹ)
// ↑ 매개변수 이름만 다르다. 안 된다.
public static void print(char c) {} //-- 자동 형 변환 규칙 check~!!!
// 자동 형변환 규칙에 따라, 만약 'A'를 넘겨줄 경우
// print(int i)에서 char를 int형으로 자동 형변환 하여 65를 넘겨줄 수도 있기 때문에
// 항상 조심하면서 사용해야 한다. print('A')는 print(char c) 를 부르는 건 맞다.
public static void print(int i, int j) {}
public static void print(double d) {} //-- 자동 형 변환 규칙 check~!!!
//public static void print(double e) {return 10.0;} //-- 정의 불가
//public static double print(double e) {return 10.0;} //--(Ⅹ) check~!!!
}