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

Dev님의 프로필 이미지
Dev

작성한 질문수

Java TPC (생각하고, 표현하고, 코딩하고)

재정의(Override)(실습)

Animal data type

해결된 질문

작성

·

272

1

class만 제공이 된다는 것이 잘 와닿지 않는데요.

1. class만 제공이 된다면 dog or cat이 어떻게 구성되있는지 모를 것이라고 설명해주셨는데 이 부분에 대해 설명 부탁드려도 될까요?

2. 또한 class만 제공된다면 Animal은 어떻게 구현되었는지 왜 알 수 있는건가요?

 

좋은 강의 감사합니다.

답변 2

1

박매일님의 프로필 이미지
박매일
지식공유자

클래스를 설계하는 사람에 따라서 달라질수는 있지만 만약 Dev님께서 Dog,Cat,Animal클 래스를 설계해서 저에게 사용하라고 줬다고 생각해보면, 주는 사람과 사용하는 사람의 입장에서 바라보면 조금이해가 되실겁니다.

만들어서 주는사람 입장(Dev님)

ㅡDog와 Cat의 설계된 내용을 구체적으로 보여주고 싶지 않을수 있습니다. 그러면 저에게 Dog.class, Cat.class파일만주면 되겠죠. 소스코드(.java)를 주지 않기 때문에 저는 Dog와 Cat의 내부를 모르겠죠? 사용할수가 없다.

사용하는 저의 입장(매일)

ㅡ저는 그럼 Dev님께 이렇게 요구할수있겠죠. Dev님 Dog와 Cat이 어떤 동작을 가지고 있는지 모르기 때문에 어떻게 사용해야되나요?

이런 상황 때문에 Dev님이 고민끝에  Dog와 Cat이가지고 있는 공통 동작을 Animal넣어서 상속을 해주는 것입니다. 그러면 저에게 Dev님이 추가적으로 Animal클래스를 주면 저는Animal에 있는 동작을 보고 Dog와 Cat을 구동시킬수가 있죠. 즉 Animal은 Dev님이저에게 Animal.java파일까지 노출시켜주는것입니다. (소스코드는 내부를 볼수있자나요, Animal같은 경우는 추상클래스로 만들면 내부를 공개해도 큰 문제가 없습니다.)이것은 설계하는 사람이 마음대로 하는것이죠?  이해가 되셨을까요

0

Dev님의 프로필 이미지
Dev
질문자

이해가 됬습니다!

답변 감사합니다 :)

Dev님의 프로필 이미지
Dev

작성한 질문수

질문하기