类投射异常与“无法投射”编译错误
2022-09-03 14:16:01
为我的OCA Java SE 7程序员I考试学习,所以新手问题。我有一个我不明白的例子问题。下面的代码进行编译,但在运行时给出一个 ClassCastException:
interface Roamable {
}
class Phone {
}
public class Tablet extends Phone implements Roamable {
public static void main(String... args) {
Roamable var = (Roamable) new Phone();
}
}
当我切换到我立即得到一个编译错误。Roamable var = (Roamable) new Phone();
Roamable var = (Roamable) new String();
两个问题:
- 为什么上面的代码会编译呢?手机似乎与我无关 可漫游?
- 为什么代码使用 编译,但不使用 ?
new Phone()
new String()