kjjjhh
912
2021-07-06 12:56:31
5
205

자바 구현체와 인터페이스의 차이가 뭐죠?


spring data jpa 관련 공부하다가,

이 것의 장점이 구현체 교체의 용이성이라고 하는데


구글에 구현체 검색하면 인터페이스만 수두룩나오네요.

대충 느낌상 코드화된 인터페이스들을 구현체라고 하는게 아닐까?

라는 생각은 드는데....


누가하나 자신의 경험 내에서든 이론에서든 딱짚어주질 않으니,

공허한 상상만 진행중이라 질문드립니다!

0
  • 답변 5

  • siva6
    5k
    2021-07-06 13:02:32

    사용하는 언어에 따라 다르기는 하지만,
    object가 외부가 커뮤니케이션 하는 것을 통틀어서 인터페이스라고 합니다.

    그런데, 자바는 언어상으로 인터페이스라는 것을 만들 수가 있습니다.
    인터페이스 자체는 혼자서 사용할 수 없고, class가 interface를 구현하게 됩니다.
    interface가 메소드 명, 파라메터등의 시그니처를 정의하고, class가 메소드의 내용을 정의합니다.

    interface를 통해서만 호출하게 되면,
    실제 object가 어떤 class로 부터 생성되었는지와는 상관 없이 사용 가능하게 됩니다.

  • 그래안그래
    1k
    2021-07-06 13:09:11

    예를 들어 교수님이 과제를 냅니다.


    A에대해서 조사하라.

    1. 서론

    2. 본론

    3. 결론

    으로 위 템플레이트에 맞춰 작성해오라그럴때,


    위 템플레이트가 인터페이스라고 생각하시면 될것같습니다.

    그안에 서론,본론,결론은 다 각자가 작성하니 구현이 되겠고요.


    그러면 교수님은 여러 학생들의 과제를 취합해서,

    서론만을 비교한다고했을때, 다똑같은 템플레이트니, 각 자료의 서론만 볼것이고..


    좀 이해가 안되게 작성하긴했는데,

    이렇게 공통으로 사용하게되는, 서론본론결론 틀과 같은게, 인터페이스라고 하고,

    그안에 채워넣는것을 구현이라고 생각하면될것같은데,.. 제가 작성하면서도 모라고하는지모르겟네요.

    도움이 되실지 모르겠습니다.


  • 애리나
    214
    2021-07-06 13:23:38

    붕어빵 틀(규격) = 인터페이스

    붕어빵을 굽는데 들어가는 실제 붕어빵 틀(규격에 맞게 설계된) = 구현체



    붕어빵 틀 A = new 별모양();

    A = new 붕어모양();

    A = new 꽃게모양();

  • 어쩌다프로그래머
    6k
    2021-07-06 13:41:49 작성 2021-07-06 13:43:11 수정됨

    Map a = new HashMap

         |                  |

    인터페이스   구현체


    Map a = new  LinkedHashMap

         |                  |

    인터페이스   구현체


    a를 사용함에 있어 -> "이 것의 장점이 구현체 교체의 용이성이라고 하는데"

    구현체와 상관없이 사용가능

  • kjjjhh
    912
    2021-07-06 16:03:19

    여러분들 답변과 위키독스 자바 인터페이스내용 한참들여다보면서 겨우 좀 감잡았네요 감사합니다1

  • 로그인을 하시면 답변을 등록할 수 있습니다.