Language/Java

오버라이딩(Overriding), 오버로딩(Overloading)

snowkit 2022. 7. 17. 22:33

오버라이딩(Overriding)

정의

  • 슈퍼 클래스의 메소드를 서브 클래스에서 재정의(수정)하여 다형성을 구현하는 기법

조건

  1. 메소드 시그니처가 동일해야 함
    • 메소드 이름
    • 매개변수(개수, 타입, 순서)
  2. 반환 타입이 동일해야 함
  3. 접근 제어자
    • private 메소드는 오버라이딩 불가능
    • 범위가 슈퍼 클래스의 메소드보다 넓거나 같아야 함
      • public > protected > package-private
  4. 예외의 개수가 슈퍼 클래스의 메소드보다 적거나 같아야 함
  5. 메소드가 static이 아니어야 함
  6. 메소드가 final이 아니어야 함

오버로딩(Overloading)

정의

  • 같은 클래스 내에서 동일한 이름의 메서드를 매개변수(개수, 타입, 순서)를 다르게 하여 여러 개 정의하는 기법

조건

  • 메소드 시그니처가 달라야 함
    • 메소드 이름
    • 매개변수(개수, 타입, 순서)

'Language > Java' 카테고리의 다른 글

생성자(Constructor), this(), super()  (0) 2022.07.17
변수, 메소드, this, super  (0) 2022.07.17
초기화 블록(Initialization block)  (0) 2022.07.17
배열(Array)  (0) 2022.07.17
소수점 자르기  (0) 2022.06.14