woowacourse / tecoble-comments

0 stars 0 forks source link

tecoble/post/2020-10-27-polymorphism/ #29

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

다형성(Polymorphism)이란?

객체 지향 패러다임의…

https://woowacourse.github.io/tecoble/post/2020-10-27-polymorphism/

Atanatous commented 3 years ago

좋은 글 감사합니다 :) 다만, 오버라이딩의 예제가 잘 와닿지 않아서 이렇게 댓글을 남깁니다.

도형의 추가 및 변경에 대해 두 가지 예제 코드를 통해 다형성을 사용하지 않을 때와의 비교, 라고 하셨는데 두 예제는 애초에 예제 내용 자체가 다른 것이지, 다형성과는 관계가 없는 것 같습니다. 두 번째 예제는 dot의 개수를 입력으로 받아 그에 따라 알맞은 도형을 생성해준다는 점이 첫 번째 예제와 다를 뿐, 실제로 그렇게 생성된 도형들이 모두 display()를 호출한다는 점에서는 각자 Figure의 display()를 오버라이딩했을 것이 분명하고, 이는 결국 다형성을 이용한 것으로 보입니다. 두 번째 예제와 마찬가지로 만약 첫 번째 예제도 점의 개수가 정해져 있지 않았다면, 점의 개수에 따라 다른 도형을 할당해야만 한다는 점은 전혀 차이가 없다고 생각합니다.

혹은, 두 번째 예제에서 Triangle과 Rectangle이 Figure를 상속받은 객체가 아니라는 것을 보여주고 싶으셨던 것이라면, 첫 번째 예제에서 점의 개수에 따라 figure에 다양한 도형 객체를 할당하고, 마지막에 figure.getDisplay()로 깔끔하게 끝낼 수 있다는 정도의 대조를 보여주신다면 조금 더 알기 쉬울 거 같습니다!