Q&A

  • "override" keyword에 대해서 설명부탁?
procedure에서 override의 역할에대해서 자세한 설명부탁합니다.

2  COMMENTS
  • Profile
    구창민 2000.02.23 20:21
    권태수 wrote:

    > procedure에서 override의 역할에대해서 자세한 설명부탁합니다.





    권태수님 안녕하시죠? 저 구창민입니다.



    질문하신 것을 예전에 보았던 우영범님의 강좌를 토대로 설명드리겠습니다.



    음..말씀하신 메쏘드의 override는 원래 메쏘드를 더 좋게, 또는 자신에게



    맞는 형태로 변형하는 것을 말합니다.



    즉, 자손 클래스에서 조상 클래스의 메쏘드를 변경하는 것을 말합니다.



    한 마디로 엎어치는 거지요.



    아래의 예를 보세요.



    type

    TSampleMethod=class

    procedure Copy;virtual; <--- Virtual로 되어있다.

    procedure Delete;

    end;



    TStaticMethod=class(TSampleMethod) <--- 자손

    procedure Copy;override; <--- 엎어쳤다.

    procedure Delete;

    end;





    override 를 할때 주의 사항입니다.



    1. Virtual 메쏘드나 Dynamic 메쏘드로 선언되야한다.(정적 메쏘드는 안됨)

    2. 조상 클래스와 자손 클래스에서 메쏘드의 이름이 똑같아야 한다.

    3. 그 메쏘드의 인수나 타입이 똑같아야 한다.



    그리고, 아래는 조상과 자손의 함수 본체입니다.



    procedure TSampleMethod.Delete;

    begin

    WriteLn('Ancestor Delete');

    end;



    procedure TStaticMethod.Copy;

    begin

    inherited Copy;

    WriteLn('Descendant Copy');

    end;



    이해되셨으면 좋겠네요~



    그럼, 즐거운 프로그래밍 하세요~





  • Profile
    권태수 2000.02.24 18:13
    창민님 오랫만에 온라인상에서 만나는군요!!



    창민님의 답변이 제가궁금하게 생각한 바로 그것이었습니다.



    정말멋진 창민님. 화이팅!!!