Java에서 묵시적 형변환이란 자동으로 형변환 해주는 경우를 의미한다.
int age = 25;
double avgAge = age; // 25.0 (double)
데이터 앞에 변환할 타입으로 명시해주는 경우
주로 큰 데이터 타입을 작은 데이터 타입으로 변환할 때 사용하며, 데이터 손실의 가능성이 있어 명시적으로 형 변환을 해주지 않을 경우 에러가 발생한다.
double avgAge = 23.54;
int age = (int)avgAge; // 24, (int)로 명시적 형변환
객체 참조 변수들 간의 대입 규칙
왼쪽 항과 오른쪽 항의 객체 유형이 서로 다른 경우 두 유형이 서로 상속 관계에 있음
왼쪽 객체가 오른쪽 객체의 상위 클래스인 경우에만 묵시적 형변환 발생
자식 클래스에서 부모 클래스 유형으로 할당하는 것은 가능하지만, 반대의 경우 명시적 형변환을 사용해야 함
class GeneralMember {
// ...
}
class SpecialMember extends GeneralMember {
// ...
}
public class Main {
public static void main(String arg[]) {
SpecialMember sm = new SpecialMember(); // 에러X
GeneralMember gm = new SpecialMember(); // 에러X
SpecialMember sm2 = new GeneralMember(); // 에러발생
SpecialMember sm3 = (SpecialMember) new GeneralMember(); // 에러X
}
}