• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

Penguin 클래스의 legCount getter를 override 할 때 질문 있습니다!

22.07.12 12:21 작성 조회수 201

1

  • - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
  • - 먼저 유사한 질문이 있었는지 검색해보세요.
  • - 서로 예의를 지키며 존중하는 문화를 만들어가요.
  • - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요 강의 정말 잘 듣고 있습니다!

여기서 Penguin 클래스의 인스턴스를 만들고 getter를 사용해봤더니 오류가 납니다.

 

override val legCount를 public override val legCount로 변경해주어야 조회가 가능했습니다.

Animal 추상 클래스를 만들 때 legCount 프로퍼티의 getter가 protected로 만들어져서 Penguin 클래스에서 오버라이드 했을 때도 protected로 만들어져서 그런건가요?

답변 1

답변을 작성해보세요.

2

안녕하세요~~ dev.taeyeong님!! 와우~~~ 매우매우 좋은 질문이십니다 ㅎㅎㅎㅎ

 

코틀린 공식 document에서 

https://kotlinlang.org/docs/visibility-modifiers.html#class-members

항목,

 

If you override a protected or an internal member and do not specify the visibility explicitly, the overriding member will also have the same visibility as the original.

 

라는 멘트를 보시면, override 한 경우 public private 등을 딱히 명시해주지 않으면 '상위 멤버'의 접근 지시자를 따라간다고 되어 있습니다!

 

즉, "Animal 추상 클래스를 만들 때 legCount 프로퍼티의 getter가 protected로 만들어져서 Penguin 클래스에서 오버라이드 했을 때도 protected로 만들어져서 그런건가요?" 가 정확한 추리이십니다 ㅎㅎㅎㅎ

 

 

혹시나 관련해서 더 질문있으시다면 편하게 질문주세요!!! 감사합니다~!!

감사합니다 !