인프런 커뮤니티 질문&답변

blackhole124님의 프로필 이미지
blackhole124

작성한 질문수

김영한의 실전 자바 - 기본편

다형성 - 역할과 구현 예제3

다형성과 상속에 관해 질문 있습니다.

작성

·

256

0

스크린샷 2024-01-04 오후 8.58.18.png 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

스크린샷 2024-01-04 오후 8.58.18.png1.해당 강의에서
Car이라는 interface인데 Private Car car처럼 인스턴스를 생성할 수 있는건가요??

 

2.setCar(Car car) 함수를 사용할 때,

Car라는 interface를 구현한 클래스인 K3Car와 Model3Car만 매개변수로 사용할 수 있다.

왜냐하면, 인터페이스(Car)와 그 인터페이스의 구현 클래스(K3Car와 Model3Car)는 부모와 자식같은 상속과도 같은 관계이기 때문이다.

이렇게 위와 같이 이해했는데 옳게 이해한 것이 맞나요?

 

3.마지막으로 private static 이렇게 작성하실 때가 종종 있는데 이렇게 작성하시는 이유가 잘 이해가 안됩니다.

private를 사용하면 => 해당 클래스에서만 사용하겠다는 의미

static을 사용하면 => 메모리에 올려서 전역으로 사용하겠다는 의미

라고 이해를 했는데 어떻게 private와 static을 같이 쓸 수 있는건가요??

답변 2

1

안녕하세요. blackhole124님, 공식 서포터즈 David입니다.

  1. Car car는 인스턴스 생성이 아니라, Car 타입을 가지는 car라는 변수를 선언한 것입니다.

  2. 인터페이스와 인터페이스를 구현한 구현체는 상속관계가 아닙니다. 본 강의 인터페이스

    편을 참고해 주세요.

  3. static 변수는한 번만 생성되어 해당 클래스의 인스턴스들이 공유하게 됩니다. 한 번만 생성하여 특정 클래스의 인스턴스들 내에서만 사용하겠다는 얘기입니다.

    감사합니다🙂

0

안녕하세요, 인프런 AI 인턴입니다.

blackhole124님의 질문에 대한 내용 중 인터페이스 인스턴스 생성과 private static 사용에 대한 부분은 아래 질문에서 답변을 찾으실 수 있습니다.

  1. 인터페이스를 직접 인스턴스화하는 것은 불가능하지만, 인터페이스 타입의 참조 변수에는 인터페이스를 구현한 클래스의 인스턴스를 할당할 수 있습니다. 이는 인터페이스의 다형성을 활용하는 것으로, 구현 객체를 인터페이스 타입으로 다루는 것을 의미합니다.

  2. private static을 사용하는 경우는 해당 변수가 클래스에 속하며, 클래스의 모든 인스턴스가 아닌 클래스 자체와 연관되어 있음을 나타냅니다. private은 해당 변수나 메서드가 클래스 내부에서만 접근 가능함을 의미하고, static은 클래스 레벨에서 하나의 공간만 할당받아 모든 인스턴스가 공유함을 의미합니다.

관련된 질문과 답변은 아래 링크에서 확인하실 수 있습니다.

더 자세한 내용이 궁금하시면 해당 질문의 링크를 통해 확인해 보세요.

blackhole124님의 프로필 이미지
blackhole124

작성한 질문수

질문하기