③메서드 오버로딩 :
같은 이름의 메서드를 중복하여 정의하는 것.
자바에서는 원래 한 클래스 내에 같은 이름의 메서드를 가질 수 없지만,
매개변수의 개수나 타입을 다르게 하면, 하나의 이름으로 메서드를 작성 가능.
즉, 메서드 오버로딩은 서로 다른 시그니처를 갖는 여러 메소드를 같은 이름으로 정의하는 것.
메서드 오버로딩의 장점
ⓘ 메소드에 사용되는 이름을 절약.
② 메소드를 호출할 때 전달 할 매개변수의 타입이나 개수에 상관 없이 사용 가능.
③ 다형성(polymorphism)을 구현하는 방법 중 하나.
class overtest {
int add(int a, int b) {
System.out.println("add int");
return a + b;
}
String add(String a, String b) {
System.out.println("add String");
return a + b;
}
float add(float a, float b) {
System.out.println("add float");
return a + b;
}
}
public class 객체지향오버로딩 {
public static void main(String[] args) {
// TODO Auto-generated method stub
overtest ot = new overtest ();
System.out.println(ot.add(2.34f, 5.67f));
System.out.println(ot.add(3,7));
System.out.println(ot.add("aaa" ,"bbb"));
}
같은 변수명 add를 사용하였지만 작동은 잘 된다. main class 에 구현 된 것 처럼 각 파라미터에 잘 어울리는 값을 입력 했기 때문이다. 따라서 컴파일러가 자동으로 구분 할 수 있게끔 파라미터의 개수나 타입을 다르게 해줘야 한다.
'JAVA' 카테고리의 다른 글
[JAVA] 객체지향 - static (0) | 2023.02.28 |
---|---|
[JAVA] 객체지향 - this, this( ) (0) | 2023.02.28 |
[JAVA] 객체지향 - 생성자 (0) | 2023.02.28 |
[JAVA] 객체지향 - 클래스 (class) (0) | 2023.02.28 |
[JAVA] 객체지향 - 객체를 멤버로 갖는 클래스 (포함 관계) (0) | 2023.02.26 |