다형성이란?
- 하나의 객체가 여러 가지 형태를 가질 수 있는 성질을 의미한다.
- 자바에서 다형성은 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미한다.
- 참조변수가 사용할 수 있는 멤버의 개수는 상위 클래스의 멤버의 수가 된다.
- 하위 클래스 타입으로 상위 클래스의 타입의 객체를 참조할 수 없다.
참조변수의 타입 변환
- 참조 변수의 타입 변환은 다르게 설명하면 사용할 수 있는 멤버의 개수를 조절하는 것을 의미한다.
- 타입 변환을 위한 3가지 조건
- 서로 상속관계에 있는 상위 클래스 - 하위 클래스 사이에만 타입 변환이 가능하다.
- 하위 클래스 타입에서 상위 클래스 타입으로의 타입 변환(업캐스팅)은 형변환 연산자
()를 생략할 수 있다.
- 반대로 상위 클래스에서 하위 클래스 타읍으로 변환(다운 캐스팅)은 형변환 연산자
()를 반드시 명시해야 한다.
instanceof 연산자
- 캐스팅이 가능한 지 여부를
boolean타입으로 확인할 수 있는 자바의 문법요소이다.
참조_변수 instanceof 타입 true일 경우 타입 변환이 가능하다.
- 참조 변수가
null일 경우에 false를 반환한다.