# 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;

객체 지향 프로그래밍

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

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