java中强转改变了什么?改变的是对象还是引用?

 我来答
yueping乐活云
推荐于2017-12-16 · 超过15用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:37.8万
展开全部
改变的是引用。如果强制转换的是基本类型,那改变的是数据本身;如果是对象,那么就是引用。可以看下面的例子:public class Test extends TT{public void f(){System.out.println("f()");}public static void main(String[] args){Test test=new Test();TT tt=(TT)test;tt.f(); //这句编译通不过test.f();}}class TT{}在这个例子中:类Test继承自类TT, 在主方法中,创建了一个Test类(子类)的对象,使引用test指向它,同时定义一个父类引用:tt,使其也指向这个对象(用强制转换),也就是说,这2个引用都指向同一个对象,可以看到,父类引用不能调用对象的f()方法。是不是对象也改变了呢?没有,可以看到引用test调用方法f()时是正确的,所以,强制转换的是引用而非对象。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式