본문 바로가기
Language/자바

[JAVA] 오버로딩(Overloading)과 오버라이딩(Overriding)의 차이점

by 띵커베르 2021. 8. 25.
728x90

오버로딩과 오버라이딩 차이점을 간략하게 살펴 보자..
면접 질문에서 자주 나온다는데 실제로 나는 받아 본 적이 없다-,.-
그래도 한번 간략히 알아보도록 하자!!

비슷한 이름 때문에 매번 헷갈리게 하는 거 같다..망할놈

한국 전통놀이인 스타크래프트의 오버로드를 보시고 계십니다.오버로딩, 오버라이딩 하면 이것만 생각안남..ㅋㅎ출처 : https://stylechoipd.tistory.com/438



간략하게 살펴보면 아래 2줄 정도만 이해해도 될 듯하다..

  • 오버로딩 : 같은 메서드 이름, 다른 인자 목록 - 다수의 메서드를 중복 정의
  • 오버라이딩 : 같은 메서드 이름, 같은 인자 목록 - 상위 클래스의 메서드를 재정의

    조~~금만 더 살펴보자면..귀찮으면 아래 표만 참조해도 이해가 가능하다.

  • Overloading
    • 메서드 이름이 같아야 한다.
    • 매개변수의 개수 또는 데이터 타입 또는 순서가 달라야 한다.
    • 리턴 타입이 다른 경우는 오버로딩이 성립되지 않는다.
      • 매개변수 명이 다른 것 과는 아무 상관이 없다.
  • Overriding
    • 상속에서 나온 개념
    • 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의 해서 사용한다.
      [오버라이드 예시 : JAVA]
       class Thought {
          public void message() {
              System.out.println("I feel like I am diagonally parked in a parallel universe.");
          }
      }
      
      public class Advice extends Thought {
          @Override  // @Override annotation in Java 5 is optional but helpful.
          public void message() {
              System.out.println("Warning: Dates in calendar are closer than they appear.");
          }
      }​



      [오버로딩과 오버라이딩 표]
      구분  오버로딩  오버라이딩 
       메서드 이름 동일  동일 
       매개변수, 타입 다름  동일 
       리턴 타입 상관없음  동일 
      [이해하기 쉬운 그림이 있어 가져왔다. 굉장히 쉽구먼!!]

728x90

댓글