Computer >> Máy Tính >  >> Lập trình >> Java

ClassCastException là gì và khi nào nó sẽ được ném vào Java?

java.lang.ClassCastException là một trong những mục không được chọn ngoại lệ trong Java. Nó có thể xảy ra trong chương trình của chúng tôi khi chúng tôi cố gắng chuyển đổi một đối tượng của một loại lớp vào một đối tượng của một loại lớp khác .

Khi nào thì ClassCastException được ném

  • Khi chúng tôi cố gắng truyền một đối tượng của lớp Cha đến của nó Loại lớp con, ngoại lệ này sẽ bị loại bỏ.
  • Khi chúng tôi cố gắng truyền một đối tượng của một lớp này sang một lớp khác loại chưa mở rộng lớp khác hoặc chúng không có bất kỳ mối quan hệ nào giữa chúng.

Ví dụ

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;
   }
}

Đầu ra

Jai
Exception in thread "main" java.lang.ClassCastException: ParentTest cannot be cast to ChildTest
        at Test.main(Test.java:30)