반응형
오버로딩(Overloading)
: 동일한 이름의 메서드를 여러개 정의하되, 매개변수의 타입이나 개수, 순서를 다르게 설정하는 것을 말한다. 같은 클래스 내에서 사용할 수 있다는 특징이 있다. 같은 기능을 수행하지만, 다양한 입력을 처리할 수 있다.
class MathUtils {
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int add(int a, int b, int c) {
return a + b + c;
}
}
오버라이딩(Overriding)
: 오버라이딩은 자식 클래스에서 부모 클래스의 메서드를 재정의하는 것이다. 부모 클래스에서 정의된 메서드와 동일한 이름과 매개변수를 갖고 있어야 하며, 기능을 변경하거나 확장할 수 있다.
class AdvancedCalc extends Calc {
// 부모 클래스의 add 메서드를 오버라이딩
@Override
int add(int a, int b) {
System.out.println("두 정수를 더합니다.");
return super.add(a, b); // 부모 클래스의 add 메서드 호출
}
// 추가로, 두 개의 실수를 더하는 메서드도 정의
double add(double a, double b) {
System.out.println("두 실수를 더합니다.");
return super.add(a, b);
}
}
오버로딩 VS 오버라이딩
- 정의 위치:
- 오버로딩: 같은 클래스 내에서 정의됨.
- 오버라이딩: 부모 클래스와 자식 클래스 간의 관계에서 정의됨.
- 매개변수:
- 오버로딩: 매개변수의 타입, 개수, 순서가 다름.
- 오버라이딩: 매개변수는 동일해야 함.
- 바인딩 시점:
- 오버로딩: 컴파일 타임에 결정됨.
- 오버라이딩: 런타임에 결정됨.
- 목적:
- 오버로딩: 같은 기능을 다양한 형태로 제공하기 위해.
- 오버라이딩: 부모 클래스의 기능을 변경하거나 확장하기 위해.
반응형
'Java' 카테고리의 다른 글
Java 패키지 (0) | 2024.08.27 |
---|---|
Java 생성자 (0) | 2024.08.26 |
Java 컬렉션 (0) | 2024.08.26 |
Java 변수 기본형 참조형 (0) | 2024.08.26 |
자바 기초 자료 모음 (1) | 2024.08.09 |