티스토리 뷰

 

메소드 오버로딩 에 대해 알아보자

 

printStram 클래스 의 메소드 print 가 메소드 오버로딩의 대표이다

 

System.out.println(1);

System.out.println("홍길동");

System.out.println(1.5);

 

printStream 클래스에 메소드 오버로딩이 이미 되있기에 다양한 매개변수에 다른타입을 사용가능한것인데,

 

메소드 오버로딩 을 직접만들때 주의해야할몇가지 사항이 있다.

 

1) 한 클래스 안에서 같은 이름으로 만들어야한다.

 

2) 같은이름으로 만들되 매개변수 개수를 다르게하거나 , 인자로 받는 타입을 다르게 하면 성립된다.

public int a(int i ) {
    return 0;
  }

public int a() {
    return 0;
  }

public int a(double i) {
    return 0;
  }

public int a(int i ,int j) {
    return 0;
  }

 

3)  메소드 오버로딩 되는 메소드의 타입과 리턴타입이 맞아야한다.

public int a(int i ) {
    return 0;
  }
public double a(double i ) {
    return 0;
  }

public int a(double i, double j) {
    return (int) (i+j);
  }

-------잘못된 오버로딩-------

public int a(double i, double j) {
    return (i+j);   <-- 메소드 타입과 리턴타입이 다르면 성립하지 않는다. error 표시 뜬다.
  }