오늘의 인기 글
최근 글
최근 댓글
Today
Total
11-28 02:28
관리 메뉴

우노

[Software Engineering] 오버로딩과 오버라이딩의 차이 본문

Etc/CS Term

[Software Engineering] 오버로딩과 오버라이딩의 차이

운호(Noah) 2022. 1. 28. 13:50

오버로딩(Overloading)이란?

  • 같은 이름을 가지는 메서드가 있더라도,
  • 매개변수의 타입 또는 개수를 달리하여,
  • 여러개의 메서드를 정의할 수 있는 기술입니다.

간단한 오버로딩 예제 코드

  • 매개변수 개수를 다르게 정의할 경우

      public int overloadTest(){
          return 1;
      }
      public int overloadTest(String test){
          return 1;
      }
  • 매개변수 타입을 다르게 정의할 경우

      public int overloadTest(String test){
          return 1;
      }
      public int overloadTest(int test){
          return 1;
      }
  • 리턴 타입을 다르게 정의할 경우

      public String overloadTest(String test){
          return "HI";
      }
      public int overloadTest(String test){
          return 1;
      }

오버라이딩(Overriding)이란?

  • 부모 클래스가 가지고 있는 메서드를, 자식 클래스가 재정의해서 사용하는 기술입니다.
  • 물론, 자식 클래스가 부모 클래스로부터 상속 받은 메서드를 그대로 사용할 수도 있지만,
  • 부모 클래스로부터 상속 받은 메서드를 재정의하고 싶다면,
  • 메서드의 이름, 매개변수 타입 및 개수, 리턴 타입을 동일하게함으로써, 메서드를 재정의해서 사용할 수 있습니다.

간단한 오버라이딩 예제 코드

public class Parent {
    public void overridingTest(int test){
        System.out.println("부모 메서드의 내용");
    }
}

class Child extends Parent {
    @Override
    public void overridingTest(int test){
        System.out.println("부모 메서드를 재정의한 내용");
    }
}

오버로딩과 오버라이딩의 차이 요약

참고

Comments