다형성의 사전적 의미는 다음과 같습니다.
좀 더 쉽게 설명을 하자면 홍길동이라는 가상의 인물의 직업이 요리사이다.
그럼 이 홍길동이란 인물을 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 |