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

JD_S·2022년 11월 7일
0

Java

목록 보기
9/21

오버로딩

한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것

조건

  • 메서드 이름이 같아야 한다.
  • 매개변수의 개수 또는 타입이 달라야 한다.
  • 반환 타입은 관계없다.

오버로딩된 메서드들은 매개변수에 의해서만 구별될 수 있으므로 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.

오버라이딩

조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것

조건

  • 선언부가 조상 클래스의 메서드와 일치해야 한다.
  • 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경 할 수 없다.
  • 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.

오버로딩 vs 오버라이딩

오버로딩 : 기존에 없는 새로운 메서드를 정의하는 것 (new)
오버라이딩 : 상속받은 메서드의 내용을 변경하는 것 (change, modify)

Reference

  • Java의 정석 (남궁성 저자)
profile
Whatever does not destroy me makes me stronger.

0개의 댓글