java.lang.ClassCastException เป็นหนึ่งใน ไม่ถูกเลือก ข้อยกเว้น ในชวา อาจเกิดขึ้นในโปรแกรมของเราเมื่อเราพยายามแปลงวัตถุ ประเภทคลาสเดียว ลงในวัตถุของ ประเภทคลาสอื่น .
เมื่อใดที่ ClassCastException จะถูกส่งออกไป
- เมื่อเราพยายาม แคสต์ออบเจกต์ของ Parent class ถึง มัน ประเภทชั้นเรียนเด็ก ข้อยกเว้นนี้จะถูกส่งออกไป
- เมื่อเราพยายาม โยนวัตถุของชั้นเรียนหนึ่งไปยังอีกชั้นเรียนหนึ่ง ประเภทที่ไม่ได้ขยายคลาสอื่นหรือไม่มีความสัมพันธ์ระหว่างพวกเขา
ตัวอย่าง
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)