Casting (형변환)
1. casting
형변환 => 기본자료형끼리의 형변환, 기본자료형과 String타입간의 형변환
A클래스, B클래스가 있을 때 A -> B 형변환하는 것은 불가능하다
상속관계에서는 클래스끼리 캐스팅 가능하다
(1) up casting : 자식 값을 부모 타입으로 형변환
부모타입 변수 = 자식타입 객체;
ex) Animal(부모클래스) Cat(자식클래스)
Animal animal = new Animal();
Cat cat = new Cat();
Animal a = cat;
(2) down casting : 이미 업캐스팅된 객체를 자식 타입으로 형변환
※ 부모값을 자식 타입으로 형변환시 오류 발생★★★
(3) casting을 사용하는 이유
부모타입인 하나의 저장공간에 여러 자식 타입의 참조값을 Up Casting하여 저장할 수 있다
(참조변수의 다형성)
만약 하나의 기능을 하는 메소드를 만들 때 매개변수로 여러 자식 타입을 받아야한다면
Casting이 없다면 자식타입을 매개변수로 받는 메소드를 타입별로 각각 만들어야한다
(자식끼리는 타입이 다르기 때문에)
Casting을 활용하면 부모타입의 매개변수를 가진 하나의 메소드만 만들면된다
(부모타입의 참조변수로 모든 자식타입을 저장할 수 있기 때문)
※ 주의사항
1. Up Casting으로 자식 참조값을 저장했다면 자식클래스에 Override(재정의)한 기능이 실행된다
2. Up Casting으로 자식 참조값을 저장했다면 자식 클래스에 새로 구현한 기능들은 사용할 수 없다
이 경우엔 Down Casting을 통해서 복구하고 사용한다
+) 다형성
하나의 것이 여러가지 형태를 가질 수 있는 성질
1. 오버로딩
2. 오버라이딩
3. 참조변수의 다형성(매개변수의 다형성)
부모클래스 타입의 참조변수로 자식 클래스 객체를 가리키는 것을 허용함
객체간 타입 비교
a instanceof A : 조건식(참 또는 거짓 중 하나가 나오는 식)
a가 A 타입이면 true 반환
a가 A 타입이 아니면 false 반환