gpt4 book ai didi

java - 为什么我在这种情况下得到 ClassCastException

转载 作者:行者123 更新时间:2023-12-02 07:59:02 25 4
gpt4 key购买 nike

请告诉我为什么在这种情况下会出现 ClassCastException

我已经进行了类型转换,将 B 类的源转换为 A 类,如下所示,但为什么我仍然在这里收到 ClassCastException 。

public class A extends B 
{


}

public class B {
public String getData() {
return "B";
}
}


public class Main {
public static void main(String args[]) {
A a = new A();
B b = new B();
a = (A) b;
System.out.println(a.getData());
}
}

最佳答案

如果我们使用不同的类名,情况会变得更加明显:

public class Car extends SomethingWithWheels {}    // was A extends B
public class SomethingWithWheels {} // was B

public class Train extends SomethingWithWheels {} // aahh, some C extends B

现在,让我们再次转换:

SomethingWithWheels somethingWithWheels = getItFromSomewhere();
Car car = (Car) somethingWithWheels;

编译器必须提示,因为 somethingWithWheels (B) 可能是 Train 实例 (C) ,无法转换为 Car (A)。

关于java - 为什么我在这种情况下得到 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9191784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com