• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

상속 관련 질문입니다.

22.05.19 08:42 작성 조회수 115

0

강사님 안녕하세요.
상속 관련된 내용을 보다가 설명하시는 부분 중에 이해가 안가는 부분이 있어서 문의드립니다.
Dog 클래스는 내용을 알수가 없기 때문에 부모 클래스인 Animal 클래스가 리모콘 역할을 하여 부모클래스를 통해
자식 클래스의 메서드(동작)에 접근한다.
 
상속의 기본 개념이니 내용을 모르는 것은 아니지만,
 
Dog.class 파일의 경우 소스파일인 Dog.java를 건드릴 수 없고 그로 인해 클래스가 어떻게 설계되어 있는 것인지 확인이 안되는 것일텐데
상속을 받기 위해서는 부모 클래스를 제가 생성한다고 하더라도 자식 클래스에 해당하는 Dog.java 소스파일과 Cat.java 소스파일은
수정을 해야 하는 것이잖아요 ?
 
그리고 오버라이딩 설명 주신 것도 저는 오히려 반대로 생각한게 Animal 클래스를 임의로 작성을 한다 한들 실제로 자식 클래스의 내용을 모르면 자식 클래스의 메서드를 핸들링 못하고, 부모 클래스의 내용을 정확히는 모르더라도 자식클래스에서 오버라이딩을 통해 임의로 구현을 할 수 있다.
 
라고 생각하는데요.
 
tv 와 리모콘의 예시가 인터페이스와 실제 구현 클래스라고 하면 이해가 가는데, 부모 클래스 자식 클래스 예시가 조금은 헷갈리네요.
보충 설명 부탁드려도 될까요 ?
 
감사합니다.
 
 

답변 1

답변을 작성해보세요.

0

네 상속 구현은 개발자가 만들고  만들어진 것을 사용자가 쓰는것입니다. 그렇기 때문에 설계자는 Dog와 Animal에 동작 구성을 다 알고있는 사람이 상속의 구조를 설계를 하겠죠?

그렇게 설계된 것을 사용하는 사람의 입장에서는 Dog의 동작 방식을 몰라도 Animal의 동작 방식만 알고있으면 Dog를 동작 시킬수가 있다는 원리입니다. 이렇게 할려면 Dog와 Animal을 자식과 부모관계로 상속을 만들고 Animal의 동작을 Dog가 재정의를 했다는 전제조건이 필요합니다.

이것을 좀더 쉽게 설명한것이 TV와 리모콘 설명일것입니다. 이해가 조금되셨을까요?