개발 하나둘셋/Java & Spring

오버로딩과 오버라이딩

유리코딩 2021. 11. 26. 18:22
반응형

개념정리

오버로딩과 오버라이딩


 

오버로딩(Overloading)

  • 두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우
  • 같은 이름의 함수(메서드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있음.

예제 코드

출처 : https://private.tistory.com/25

 

출력

 

 

오버라이딩(Overriding)

  • 상위 클래스의 메서드와 이름과 용례(signature)가 같은 함수를 하위 클래스에 재정의하여 사용하는 것
  • 상속 관계에 있는 클래스 간에 같은 이름의 메서드를 정의
  • 메서드의 이름, 매개변수, 반환형이 같을 경우 상속받은 메서드를사용

예제 코드

출력

 

오버로딩과 오버라이딩의 성립조건

구분 오버로딩 오버라이딩
메서드 이름 같음 같음
매개변수, 타입 다름 같음
리턴타입 상관없음 같음

 

 

오버로딩과 오버라이딩을 사용하는 이유

  • 오버로딩과 오버라이딩은 클래스의 다형성을 지원하는 방법
  • 오버로딩이 지원되지 않으면 매개변수의 타입이나 개수가 다른 메소드를 여러개 만들어줘야 하는 단점이 있음
  • 자바에서는 메소드의 이름이 같고 매개변수를 다른 메소드를 만들어 다형성을 지원함
  • 여기서 오버로딩은 리턴타입은 전혀 영향을 주지 않고, 매개변수의 타입과 개수에만 영향을 받음
  • 오버라이딩은 상속받은 클래스의 메소드가 하위 클래스에서 충분한 기능을 제공하지 않거나, 부족할 때 상위 클래스로부터 상속받은 클래스를 재정의 하기 때문

 

반응형