본문 바로가기

Dev. Java

다형성 자세히 이해하기1

* 부모 자식 사이의 캐스팅과 프로모션을 알아보자.


1. 부모 클래스 



2. 자식 클래스



3. 메인 메서드(다형성 발생)


ⓐ 레퍼런스 다형성

8 라인에서 레퍼런스 다형성이 발생한 것을 확인할 수 있다. 레퍼런스 다형성이란 부모 클래스로 자식의 객체

를 생성할 때 발생한다. 이렇게 생성된 객체는 라인 19에서처럼 자식의 메서드를 사용할 수 없다. 


ⓑ 클래스 캐스팅

19 라인의 car2.move()는 사용할 수 없다. 왜냐하면, move() 메서드는 Car 클래스에는 없는 내용이기 때문이

다. move() 메서드를 호출할 수 있는 방법은 없을까? 20 라인에서 그 방법을 보여주고 있다. car2의 설계도를 

버스 타입으로 바꿔주면, 즉 부모 객체를 자식 타입으로 캐스팅 하는 것이다.


ⓒ 아규먼트 다형성

23라인에서는 아규먼트 다형성을 확인할 수 있다. 부모의 이름으로 자식을 받는 것이다.  단, 이렇게 생성된 자

식 객체는 move 메서드를 사용할 수 없다. 부모 클래스에는 move 메서드가 포함되지 않았기 때문이다. 



'Dev. Java' 카테고리의 다른 글

JVM 메모리 구조  (0) 2014.07.25
다형성 자세히 이해하기2  (0) 2014.07.25
자바 압축 파일(jar) 만들기와 사용하기  (0) 2014.07.23
접근 제한자  (0) 2014.07.22
자바 this 키워드  (0) 2014.06.18