foxpacking

Programming Lessons

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

About Author

Leave a comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You may also like

Korean Programming 기초

IT 개발자 VS 프로축구선수 비교?

IT 개발자와 프로축구선수의 같은 점과 다른 점? 프로그래밍 공부를 하시면서 개발자로 취업을 하려고 하는데 과연 취업을 할 수 있을까? IT
Korean 클라우드

AWS 로그인 불가능, AWS고객 센터 이메일 문의 결과는?

AWS 고객센터 이메일 문의 솔직후기 AWS를 사용하기 위해 로그인을 하는 경우 이메일로 코드 번호를 보내지만 이메일로 받을 수 없는 상황이거나