> For the complete documentation index, see [llms.txt](https://heunnajo.gitbook.io/spring/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://heunnajo.gitbook.io/spring/undefined-5/memberservice.md).

# MemberService를 싱글톤화하면서 생긴 상속 개념 궁금증

```java
package hello.core.singleton;

public class MemberService {
    /*1*/private static final MemberService instance = new MemberServiceImpl(memberRepository);
    /*2*/public static MemberService getInstance(){return instance;}
    /*3*/private memberService(){}
}
```

```java
@Test
@DisplayName("싱글톤 패턴 적용한 객체 사용")
void singletonServiceTest(){
    MemberService instance1 = MemberService.getInstance();
    MemberService instance2 = MemberService.getInstance();
    System.out.println("instance1 = " + instance1);
    System.out.println("instance2 = " + instance2);
    //인스턴스가 같은지 비교하기위해 isSameAs 사용한다!
    assertThat(instance1).isSameAs(instance2);
}
```

모르는 부분1.싱글톤 패턴을 적용해서 테스트 코드작성해보면\
MemberService.getInstance()로 MemberService의 getInstance를 호출해서 인스턴스를 생성하는 것 같다. 그런데 MemberService는 인터페이스인데 인터페이스의 메서드에 접근해서 인스턴스를 생성할 수 있나? 객체 지향 프로그래밍의 상속 개념에 따르면 그럴 수 없다고 한다.&#x20;

객체 지향 프로그래밍

인터페이스와 상속 개념 공부하기

\=> 인터페이스의 메서드에 접근할 수 없다!?
