java.lang.ClassCastException 선택되지 않은 중 하나입니다. 예외 자바에서. 우리 프로그램에서 하나의 클래스 유형의 개체를 변환하려고 할 때 발생할 수 있습니다. 다른 클래스 유형의 개체로 .
ClassCastException이 발생하는 시기
- 상위 클래스의 개체를 캐스팅하려고 할 때 ~으로 그것의 하위 클래스 유형, 이 예외가 발생합니다.
- 한 클래스의 객체를 다른 클래스로 캐스팅하려고 할 때 다른 클래스를 확장하지 않았거나 서로 관계가 없는 유형입니다.
예
class ParentTest {
String parentName;
ParentTest(String n1){
parentName = n1;
}
public void display() {
System.out.println(parentName);
}
}
class ChildTest extends ParentTest {
String childName;
ChildTest(String n2) {
super(n2);
childName = n2;
}
public void display() {
System.out.println(childName);
}
}
public class Test {
public static void main(String args[]) {
ChildTest ct1 = new ChildTest("Jai");
ParentTest pt1 = new ParentTest("Adithya");
pt1 = ct1;
pt1.display();
ParentTest pt2 = new ParentTest("Sai");
ChildTest ct2 = (ChildTest)pt2;
}
} 출력
Jai Exception in thread "main" java.lang.ClassCastException: ParentTest cannot be cast to ChildTest at Test.main(Test.java:30)