본문 바로가기
IT/Java

자바 다형성(Polymorphism) 알아보기

by flatsun 2019. 2. 21.
반응형

자바 다형성 엄청 간단한건데


인터넷에 검색을 해서 찾아보면

아니 진짜 쉬운걸 다들 어렵게 설명을 해서 봐도 잘 모르겠다


그래서 검색은 무조건 영어로 하는 것이 짱인데

세상은 넓고 고수들은 다 외국에 있기 때문에

고수들이 영어로 요약한게 더 알아보기 쉽기 때문이다


일단 다형성 정의부터 알아보자


Polymorphism is one of the OOPs feature that allows us to perform a single action in different ways. 


비겁하게 번역기를 사용해서 번역을 해 보면


다형성은 하나의 행동을 여러 방식으로 할 수 있게 해 주는 것인데

그림으로 한번 확인해보자


다형성1


동일한 메소드를 사용했는데

 늑대 개체와 다람쥐 개체에서 다른 출력값이 나오네?


이거 어디서 많이 봤을텐데

바로 오버라이드다!!!


(오버라이드를 모르면 해당 링크 참조..)

https://flatsun.tistory.com/50


오버라이드란 부모 클래스에서 상속 받은 메소드를

자식 클래스가 맘대로 바꾼 뒤 사용하는 것으로


각각 늑대와 다람쥐에 맞게 오버라이드를 해서

동일한 Communicate() 메소드 인데도 다른 결과가 나오는 것이다


다형성의 다른 예를 한번 알아보자


다형성2


어 이거 오버로딩 아닌가?


(오버로딩을 모르면 해당 링크 참조..)

https://flatsun.tistory.com/52


맞다!


근데 다형성이 뭔가

하나의 행동을 여러 방식으로 하는 것!


동일한 메소드를 오버로드하여 여러 파라미터가 들어가도 사용할 수 있게 정의한 것 또한

다형성의 사례에 해당되는 것이다


여기서 간단하게 끝내기 위해 빨리 마무리를 짓자면


다형성은 뭐다?


하나의 행동을 여러 방식으로 하는 것!


다형성의 예는 뭐다?

오버라이드, 오버로딩!

( 하나의 행동을 여러 방식으로 한다.. )

반응형

댓글