java中强转改变了什么?改变的是对象还是引用?
展开全部
改变的是引用。如果强制转换的是基本类型,那改变的是数据本身;如果是对象,那么就是引用。可以看下面的例子: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()时是正确的,所以,强制转换的是引用而非对象。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询