Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

ClassCastException이란 무엇이며 Java에서 언제 발생합니까?

<시간/>

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)