JAVA,객체지향

다형성

25G 2021. 11. 21. 12:02

다형성의 사전적 의미는 다음과 같습니다.

좀 더 쉽게 설명을 하자면 홍길동이라는 가상의 인물의 직업이 요리사이다.

 

그럼 이 홍길동이란 인물을 java세상에 만들어 본다면

 

홍길동 클래스가 요리사라는 클래스를 상속한다.

이 둘이 상속이 가능한 이유는 홍길동 보고 요리사라고 물어보면 "네"라고 할 수 있고 요리사 보고 홍길동이니? 해도 "네"라고 할 수 있다. 즉 홍길동은 다양한 형태를 가지고 있는 것이다(다형성)

 

홍길동 extends 요리사

 

그럼 홍길동을 메모리에 올리고 싶어서 new 홍길동(); 을 하게 되면 메모리에 요리사와 홍길동이 같이 올라온다.

하지만 new요리사();로 요리사로 띄우게 되면 메모리에는 요리사만 올라온다.

 

위 그림처럼 new홍길동();하면 메모리에 홍길동 요리사가 뜨기때문에 new홍길동의 타입은 홍길동도 될 수 있고 요리사도 될 수 있는 것이다.

하지만 new요리사();하게 되면 메모리 공간에 요리사밖에 올라오지 못하기 때문에 타입 또한 요리사로 밖에 할 수 없는 것이다.

 

'JAVA,객체지향' 카테고리의 다른 글

오버라이딩  (0) 2021.11.25
오버로딩과 오버로딩의 한계  (0) 2021.11.25
클래스? 오브젝트? 인스턴스???  (0) 2021.11.21
클래스만들기/생성자/this  (0) 2021.11.20
자료형이란?  (0) 2021.11.18