使用超类引用的java转换
发布时间:2020-12-14 19:16:51 所属栏目:Java 来源:网络整理
导读:有人能解释一下这里发生了什么吗? 假设Car和Bike是Vehicle的子类. 在我看来,像车辆v参考被投射到自行车.我知道这是非法的,事实上编译器吐出来汽车无法投入自行车. 但这不应该是车辆不能投到自行车?毕竟,Vehicle v是车辆参考. public class Test { public s
有人能解释一下这里发生了什么吗? 假设Car和Bike是Vehicle的子类. 在我看来,像车辆v参考被投射到自行车.我知道这是非法的,事实上编译器吐出来……汽车无法投入自行车. 但这不应该是车辆不能投到自行车?毕竟,Vehicle v是车辆参考.
最佳答案
错误消息说Car,因为这是运行时异常.由于此时它知道Vehicle引用所指向的实际实例(Car,Bike或Vehicle),因此它提供了更具体的错误消息.
如果在编译时这是一个异常,编译器会提到Vehicle,因为编译器可能不知道Vehicle引用指向的实际实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |