자바
Overloading[오버로딩] vs Overriding[오버라이딩]
R4MeN
2024. 5. 28. 01:04
오버로딩(Overloading)
오버로딩이란
- 두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우를 말함
오버로딩 예시
public class MathUtils {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
}
오버라이딩(Overriding)
오버라이딩이란
- 상위 클래스의 메서드와 이름과 시그니처가 같은 함수를 하위 클래스에 재정의하는 것을 말함
- 즉, 상속 관계에 있는 클래스 간에 같은 이름의 메서드를 정의하는 것임
오버라이딩 예시
class Animal {
public void makeSound() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Bark");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.makeSound(); // 출력: Bark
}
}
출력 결과
Bark
- Dog 클래스에서 makeSound() 메서드를 재정의함
- 오버라이딩을 할 때 개발자의 실수를 방지하기 위해 메서드 위에 @Override를 관례적으로 적음