inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 인터페이스의 객체

해결된 질문

316

작성자 없음

0

인터페이스는 일단 객체를 못만든다고 알고 있어요

근데 익명이너클래스를 이용해서 만드는 방법이 있던데

 

interface A{

abstract void abc();

}

이거를

A a = new A(){

public void abc(){.....}

};

이렇게 할 수 있던데 익명이너클래스에 인터페이스를 상속해서 abstract메서드를 오버라이딩 했기때문에

가능하다는 건 알겠는데 그러면 객체는 익명이너클래스의 객체 아닌가요...?

 

익명객체가 인터페이스A를 상속받았기때문에 다형적인 표현으로 A a 이렇게 표현이 가능한건가요?

저런 표현이 가능한가요? 참조변수 a는 인터페이스A 타입인 객체를 가리킨다는 뜻 아닌가요..?

근데 인터페이스는 객체를 못만든다고 배웠는데.. ㅠㅠㅠ 정말 이 부분이 이해가 안 갑니다 ㅠㅠㅠ

왜 객체를 인터페이스 타입으로 지칭하는지 ㅠㅠ

java

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

인터페이스는 미완성된 추상 메서드들의 집합이기 때문에 객체를 직접 생성할 수 없습니다. 하지만 익명 내부 클래스를 사용하면 인터페이스를 구현한 객체를 생성할 수 있습니다.

예를 들어, 인터페이스 A를 구현한 객체를 생성하고 싶다면 다음과 같이 익명 내부 클래스를 사용할 수 있습니다.

interface A {      
    void abc();
}

A a = new A() {
    public void abc() {
        // 구현 내용 작성
    }
};

위의 코드에서 a는 인터페이스 A를 구현한 익명 내부 클래스의 객체를 가리킵니다. 익명 내부 클래스는 인터페이스 A를 상속받았고, abc 메서드를 오버라이딩하여 구현했기 때문에 A a라는 형태로 참조 변수를 선언할 수 있는 것입니다.

인터페이스 자체로는 객체를 생성할 수 없지만, 익명 내부 클래스를 통해 인터페이스를 구현한 객체를 생성할 수 있습니다. 이를 통해 다형성을 활용할 수 있어 객체지향적인 프로그래밍을 할 수 있습니다.

저희가 “인터페이스는 객체를 못만든다”라고 설명한 것은 인터페이스만으로 객체를 생성할 수 없다는 의미였습니다. 익명 내부 클래스를 사용하면 인터페이스를 구현한 객체를 생성할 수는 있지만, 여전히 인터페이스 형태로만 접근이 가능합니다.

더 궁금한 점이 있으시면 언제든지 물어보세요!

build 시 에러 해결방법 공유(docker.desktop 업데이트 -> 의존성 버전 수정)

0

15

1

예외처리 3강 문의

0

17

1

챌린지 시작일 문의

0

24

0

26년2회 실기기출은 언제쯤...

0

41

2

진짜화면이랑달라서못해먹겟어요먹겟어요

0

51

1

네이버 API | '검색 - 책' API 제공 중단

0

37

2

ArticleReadService 관련 질문

0

27

1

kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.

1

64

1

이론 공부법 요약본 버전 업데이트 문의

0

35

2

domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다

1

45

1

해당 프로젝트를 똑같이 따라하려니 spring installer가 버전이 17부터 가능하네요.

0

23

1

Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.

0

44

2

테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.

0

29

1

Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면

1

72

1

리뉴얼 시기

0

45

2

스크립트에 대해 질문 있습니다.

1

58

1

같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!

2

71

1

조건 검색 질문

0

40

1

JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문

0

54

3

클로드코드 명령어-대화&세션관리 수업 자료

0

40

1

정처기 필기 준비할때 이 이론을 다시 외워도 될까요?

0

56

2

PlatformTransactionManager, ResourcelessTransactionManager 질문

1

65

2

자료 한번에 다운받기

0

33

1

스프링 빈 등록 방법 2가지 다 알아야하는 이유

0

59

1