IT/개발자 면접

java Overloading과 Overriding

Collin 2025. 11. 20. 20:00
반응형

자바에서 오버로딩과 오버라이딩은 모두 메서드를 다형적으로 사용하는 방식이지만, 목적과 사용 방식이 다릅니다.


🔁 오버로딩 (Overloading)

같은 이름의 메서드를 매개변수만 다르게 정의하는 것

  • 정의 위치: 같은 클래스 내에서 사용
  • 조건:
    • 메서드 이름은 같음
    • 매개변수의 개수, 타입, 순서 중 하나 이상이 달라야 함
    • 리턴 타입만 다르면 오버로딩 불가능
  • 예시:
  • void print() {} void print(String s) {} void print(int x, int y) {}
  • 용도: 다양한 입력에 대해 같은 기능을 수행하고 싶을 때

🔄 오버라이딩 (Overriding)

상위 클래스의 메서드를 하위 클래스에서 재정의하는 것

  • 정의 위치: 상속 관계에서 하위 클래스에서 사용
  • 조건:
    • 메서드 이름, 매개변수, 리턴 타입 모두 동일해야 함
    • 접근 제어자는 상위 클래스보다 좁으면 안 됨
    • @Override 어노테이션 사용 권장
  • 예시:
  • class Animal { void sound() { System.out.println("Animal sound"); } } class Dog extends Animal { @Override void sound() { System.out.println("Bark"); } }
  • 용도: 상속받은 기능을 자식 클래스에서 변경하고 싶을 때

📌 핵심 차이 요약

항목 오버로딩 오버라이딩

관계 같은 클래스 내 상속 관계 (부모 → 자식)
메서드 이름 같음 같음
매개변수 다름 같음
리턴 타입 상관 없음 같아야 함
목적 다양한 입력 처리 부모 메서드 기능 재정의

 

728x90
반응형

'IT > 개발자 면접' 카테고리의 다른 글

java Call by Value와 Call by Reference  (1) 2025.11.21
웹 서버 취약점 목록 및 요약  (0) 2025.11.21
DB 복합 인덱스  (0) 2025.11.20
단일 서버에서 JWT를 피해야 하는 이유  (0) 2025.11.19
JWT 장점과 단점  (0) 2025.11.18