[Java] 오버로딩과 오버라이딩 (Overloading & Overriding)

Jiisuniui·2023년 10월 21일

Java의 모든 것

목록 보기
4/7
post-thumbnail

오버로딩 (Overloading)

1. 오버로딩이란?

  • 같은 이름의 메서드를 지원하면서 매개변수의 유형과 개수가 다르게 하는 기술

2. 오버로딩의 조건

  • 메소드의 이름이 일치해야 함
  • 메소드 매개변수의 개수 또는 타입이 달라야 함 (개수가 같다면 타입, 타입이 같다면 개수를 다르게 해야함)
  • 메소드의 return은 자유롭게 가능

3. 오버로딩을 사용하는 이유

  • 같은 기능을 하는 메소드를 하나의 이름으로 사용할 수 있다.
  • 메소드의 이름을 절약할 수 있다.

오버라이딩 (Overriding)

1. 오버라이딩이란?

  • 상위 클래스가 갖고 있던 메서드를 하위 클래스에서 재정의

2. 오버라이딩의 조건

  • 메소드의 이름이 일치해야 함
  • 메소드 매개변수의 개수, 순서 그리고 데이터 타입 일치해야 함
  • 메소드의 return 타입이 일치해야 함

3. @Override의 용도

  • 오버라이딩을 검증하는 기능
  • 규칙
    - 자식 클래스에서 오버라이딩하는 메소드의 접근 제어자는 부모 클래스보다 더 좁게 설정할 수 없다.
    - 예외(Exception)는 부모 클래스의 메소드 보다 많이 선언할 수 없다.
    • static메소드를 인스턴스의 메소드로 또는 그 반대로 바꿀 수 없다.

접근제어자


정리

타입오버로딩오버라이딩
접근제어자모든 접근 제어자 사용부모보다 더 넓은 범위의 접근 제어자를 자식에서 사용
메소드 이름동일동일
매개 변수, 타입다름동일
return상관없음동일

참고자료

profile
why error?

0개의 댓글