本文主要是介绍java 对象切割,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
为什么被转换为父类类型的对象(会有对象切割,包括方法和属性),在重新转化为本类后,那些被切掉的东西又available了?
public class objectConvert {private String mSig;public void set(String ipStr){mSig = ipStr;}public void echo(){System.out.println("*** method echo of class objectConvert:(" + mSig +") ***");}public static void main(String args[]){System.out.println("*** start ***");objectConvert obj1 =new objectConvert();obj1.set("Hello World");obj1.echo();System.out.println(obj1.hashCode());Object obj2 = (Object)obj1;// obj2.echo();System.out.println(obj2.hashCode());objectConvert obj3=(objectConvert)obj2;obj3.set("After convert");obj3.echo();System.out.println(obj3.hashCode());}
}
运行结果:
*** start ***
*** method echo of class objectConvert:(Hello World) ***
278058706
278058706
*** method echo of class objectConvert:(After convert) ***
278058706Process finished with exit code 0
看来虽然被切割了,但对象obj1仍然在那里。由此可见,方法是否可以被调用,属性是否可以被访问,是语言语义上的规范。 唯此可以遥寄真解了。
这篇关于java 对象切割的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!