본문 바로가기
🗂 Study/자바

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

by 뿌맘 2021. 7. 14.
반응형

🔫 오버로딩(Overloading)

같은 이름의 메서드를 여러 개 가지면서 매개변수의 유형과 개수가 다르도록 하는 것

  • 메서드 오버로딩, 생성자 오버로딩이 있다.
  • 리턴 값만을 다르게 갖는 오버로딩은 작성할 수 없다.
  • 오버로딩된 메서드는 컴파일 시에 어떤 메서드를 실행할지 결정한다.

오버로딩 사용 이유

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

오버로딩 성립 조건

  • 메서드 이름이 동일해야 한다.
  • 매개변수의 개수 또는 타입이 달라야 한다. (인자의 순서도 같아야 함)
  • 매개변수는 같고 리턴 타입이 다른 경우는 오버로딩이 성립되지 않는다.

 

🔫 오버라이딩(Overriding)

상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용하는 것

  • 메서드 이름은 물론 파라미터의 개수나 타입도 동일해야 한다.
  • 주로 상의 클래스의 동작을 상속받은 하위 클래스를 변경하기 위해 사용된다.
  • 오버라이딩된 메서드는 런타임 시에 어떤 메서드를 실행할지 결정한다.

오버라이딩 성립 조건

  • 메서드 이름이 동일해야 한다.
  • 매개변수, 타입이 동일해야 한다.
  • 리턴 타입이 동일해야 한다.

 

🔫 정리

  1. 오버로딩은 기존에 없던 새로운 메서드를 정의하는 것이며, 코드의 통일성과 효율성을 높일 수 있다.
  2. 오버라이딩은 상속받은 메서드의 내용만 변경(재정의)하는 것이며,  메서드 하나로 여러 객체를 다루고 객체마다 다른 기능을 사용할 수 있다.

 

 

 

참고 블로그

반응형

댓글