티스토리 뷰
자료형변환
-다형적변수로 자식의 메서드중에서
오버라이딩되지 않는 메서드를 호출할때 형변환을 해야한다.
class A{
void a(){System.out.println(1);}
}
class B{
public static void main(String args[]){
Object o=new A();
//o.a(); // here
}
}
[an1]
A o2=(A)o;
o2.a();
[an2]
((A)o).a();
# ClassCastException : 클래스변환에러
[ex]
class Animal{}
class Dog extends Animal{}
class Cat extends Animal{}
class A{
public static void main(String args[]){
Animal animal=new Dog();
Cat cat=(Cat)animal;
}
}
# instanceof연산자 : 자료형검사하는 연산자
[sy] 객체명 instanceof 클래스명
[ex]
class A{}
class B extends A{}
class C extends A{}
class D{
public static void main(String args[]){
A o=new B();
System.out.println(o instanceof B); // true
System.out.println(o instanceof C); // false
System.out.println(o instanceof D); // 컴파일에러
}
}
'LANGUAGE > JAVA' 카테고리의 다른 글
[JAVA] 자바의 진수표현 (0) | 2017.11.15 |
---|---|
[JAVA] 상수 & 인터페이스 (0) | 2017.11.15 |
[JAVA] 기타제어자 (0) | 2017.11.15 |
[JAVA] 다형적변수 (0) | 2017.11.15 |
[JAVA] 메서드 오버로딩,오버라이딩 (0) | 2017.11.15 |
댓글