当我尝试与Colorable
接口指向Car
类的对象,而无需使用工具类汽车i未显示任何编译错误(虽然它显示运行时错误)(问题1)和当我尝试对班级做同样的事情,我不会延长车辆等级,并尝试用车辆类别指示车辆的对象,它立即显示编译错误。为什么?接口参考变量
问题1:
interface Colorable {}
class Vehicle {}
class Car extends Vehicle {}
public class Tester {
public static void main(String[] args) {
Car c=new Car();
Vehicle a = (Vehicle)c;
Colorable i = (Colorable)c;
System.out.println("Successful");
}
}
问题2:
interface Colorable {}
class Vehicle {}
class Car {}
public class Tester {
public static void main(String[] args) {
Car c=new Car();
Vehicle a = (Vehicle)c;
Colorable i = (Colorable)c;
System.out.println("Successful");
}
}
当您输入问题时,编辑区域旁边有一个方便的** How to Format **框。值得一读。在下面还有一个预览,您可以在其中看到您的问题的样子,以及编辑区域上方的格式化工具栏。由于这不是你的第一个问题,请在发布之前花时间清楚地设置事物的格式,而不是依赖像拉胡尔这样的人为你做。 –
问题2:由于Car没有实现该接口,因此不能将c转换为Colorable(“Colorable i =(Colorable)c;”)。但是,如果您可以向我们显示您引用的错误输出,它会非常有帮助。 – tbsalling
也许你会得到至少一个编译警告有关选中铸件... –