오버로딩은 같은 이름의 메서드나 생성자를 여러 개 정의하는 것이다.
단, 매개변수의 개수나 타입이 달라야 한다.
메서드 오버로딩
introduce()라는 같은 이름의 메서드를 여러 형태로 정의하였다.
public void introduce() {
System.out.println("안녕하세요");
}
public void introduce(String name) {
System.out.println("안녕하세요 %s입니다.".formatted(name));
}
public void introduce(int age) {
System.out.println("안녕하세요 %d세입니다.".formatted(age));
}
public void introduce(String name, int age) {
System.out.println("안녕하세요 %d세 %s입니다.".formatted(age, name));
}
호출하는 매개변수에 따라 자바가 알맞은 메서드를 자동으로 선택한다.
Person p1 = new Person();
p1.introduce();
p1.introduce(10);
p1.introduce("홍길동");
p1.introduce("홍길동", 20);
생성자 오버로딩
생성자도 오버로딩이 가능하다.
public Person() {
System.out.println("기본 생성자");
}
public Person(int age, String name) {
System.out.println("매개변수 2개인 생성자");
}
객체를 생성할 때 전달하는 인자에 따라 다른 생성자가 호출된다.
Person p2 = new Person();
Person p3 = new Person(20, "홍길동");
- new Person() → 기본 생성자 호출
- new Person(20, "홍길동") → 매개변수 2개인 생성자 호출
'알고리즘 > Java' 카테고리의 다른 글
| [Java] Scanner와 System.out 입출력 대체하기 (0) | 2026.07.23 |
|---|---|
| 레이어드 아키텍처 (0) | 2026.07.22 |
| [Java] try-catch (0) | 2026.07.21 |
| [Java] 자바 스트림, 람다 (0) | 2026.07.20 |
| [Java] 캡슐화(Encapsulation) (0) | 2026.07.15 |
댓글