Categories: Java 언어Korean

Java 총 정리[68. Method Overriding 기초]

Method Overriding 기초

이전 걸음에서 참조 자료형 변환에 대해서 좀 더 자세하게 다뤄봤습니다. 참조 자료형 변환을 사용하면 좋은 점이나 한계에 대해서 봤습니다. 이번에는 참조 자료형 변환과 땔 수 없는 내용에 대해서 이번 글을 통해서 같이 공부를 하도록 하겠습니다.

이번 걸음에서는 Method Overriding(메소드 오버라이딩)에 대해서 공부를 하도록 하겠습니다. Method Overriding은 참조 자료형 변환과 같이 상속과 연관성을 가지고 있습니다. 이번 걸음을 통해서 Method Overriding에 대한 기초를 이해를 도와드리겠습니다.

Method Overriding의 정의와 설명과 Method Overriding의 소스 및 사용 방법을 이번 걸음에서 설명을 드리겠습니다. 그래서 같이 이번 글을 함께한다면  Method Overriding에 대한 기본적인 내용을 이해를 할 수 있고 추후 심화의 내용을 이해를 하는데 도움이 될 수 있습니다. 

Method Overriding 정의 및 설명

Method Overriding이란?

부모 class가 정의한 Method를 자식 class에서 다시 재정의 하는 것을 말합니다. 

기존에 부모가 가지고 있는 기능인 Method를 자식이 본인이 필요한 방향으로 수정을 하여서 사용을 하게 됩니다. 그렇게 되면 그 자식 class 같은 경우에 부모 class가 정의한 Method의 내용을 사용을 할 수 없고 본인이 정의한 내용의 기능만 사용을 할 수가 있습니다.

※이해를 돕고자 위의 그림을 보시면 같은 유니콘의 모양이지만 안의 패턴이 다릅니다. 위의 그림으로 Method Overriding을 이해를 하면 좋을 것 같습니다.

Method Overriding 예제 소스 및 설명

    
class A{
     void abc(){
          System.out.println(“ABC”);
     }
}

class B extends A{
     @Override
     void abc(){
          System.out.println(“DEF”);
     }
}

public static void main(String[] args) {
    A a = new A();
    a.abc(); // ABC

    B b = new B();
    b.abc(); // DEF

    A a1 = new B();
    a1.abc(); //DEF
}

    

위 소스에서 보면 부모 class A에 abc라는 Method가 있고 자식 cㅣclass B도 형태가 아예 똑같은 abc Method가 있습니다. 이렇게 class를 만들게 되면 abc가 Method Overriding이 된 것입니다. 자식 class B는 부모 class A가 정의한 ABC를 출력을 할 수 없습니다.

그래서 main Method를 보면 A객체를 생성하면 ABC가 출력이 되고 B객체를 만들면 DEF가 출력이 됩니다. 마지막으로 자료형은 부모 A인데 객체는 자식 B이면 객체의 기준으로 DEF가 출력이 됩니다.

※위와 같이 부모 Method를 재 정의를 하면 아무리 참조 자료형 변환을 하여도 실제 객체를 기준으로 Method를 호출하게 됩니다. 

Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

5개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

5개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

5개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

6개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

6개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

6개월 ago

This website uses cookies.