大佬教程收集整理的这篇文章主要介绍了是什么使对象分配与另一个类兼容?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Class.isInstance(Object
obj)的Javadoc
给出了以下定义assignment compatible
:
基本上,如果类型A扩展或实现类型B,则可以将类型A的对象分配给类型B的变量。
我想知道什么特别允许将一个类的对象转换为另一个类。查看Class.isInstance(Object
obj)javadoc,它表明一个对象必须与另一个类“赋值兼容”才能转换为该类。但是什么是“分配兼容”的呢?
我试图弄清楚以下内容如何返回ClassCastException:
public class A
{
multiple private attributes
No constructor
multiple public methods
}
public class B extends A
{
blank default constructor
2 additional private attributes
4 additional public getter / setter methods for these attributes
}
线
B b = (B)variable.getA() // where getA() returned an instance of class A
返回ClassCastException A不能转换为B。我知道从父类转换为子类是一个坏主意。我没有编写有问题的代码,我只是在生产支持方面查看它。
类B是代码库中唯一从A扩展的类。因此,getA()的结果不是强制转换为A的A的另一个子类(例如C)的对象。
那么为什么在这种情况下Java不能将A类的对象强制转换为看似兼容的B类呢?
以上是大佬教程为你收集整理的是什么使对象分配与另一个类兼容?全部内容,希望文章能够帮你解决是什么使对象分配与另一个类兼容?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。