본문 바로가기

Java Programming

Overloading과 Overriding의 관계?

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

신나는 자바 공부시간.. 작년에 프로그래밍 입문 시험을 중점적으로 +_+
풀어보던 도중에.. 아무래도 포스팅 하면서 공부하는게 좋겠다.. 싶어서.. 시작합니다.

먼저 OOP를 공부하면서 Overloading과 Override를 만나게 되는데요.. 접두어가 'Over' 라서 두 메카니즘의 관계가 있을것이라고 생각을 할 수 있습니다만... 전혀 관련이 없다네용 ^^;; 각각의 컨셉에 대해서 간략하게 알아보도록 하겠습니다.

Overloading
:중복메서드, 메소드명은 같지만 매개변수의 개수, 타입 둘중에 한개 이상 다를 경우 성립됨


public class OverloadingTest {
   static void print(int x){
       System.out.println(x);
   }
   static void print(int x, int y){
       System.out.println(x);
       System.out.println(y);
   }
   public static void main(String[] args) {
       // Parameter의 Type이 다른경우 : String과 integer
       String object = "test";
       System.out.println(object);
       int integer = 0;
       System.out.println(integer);
      
       // Parameter의 개수가 다른 경우 : 1개인 경우, 2개인 경우
       int integer2 = 1;
       OverloadingTest.print(integer);
       OverloadingTest.print(integer, integer2);

   }
}


Overriding
: 메소드의 재정의, 상속에서의 부모의 메서드와 같은 이름으로 자식 클래스에서 재정의하여 사용한다.


public class Mother {
   static void love(){
       System.out.println("사랑한다");
   }
}


public class Children extends Mother{
   //@Override
   static void love(){
       System.out.println("사랑해요 엄마");
   }
}


public class OverrideTest {
   public static void main(String[] args) {
       Mother.love();
       Children.love();
   }
}

<Console>
사랑한다
사랑해요 엄마